G Vars Objeto estándar

Capa Clases


Antes de hablar de la capa de clases, haremos un breve recuento de lo visto hasta este momento en las capas:

capa-j2338327.jpg

El triangulo superior rojo de la imagen anterior, representa lo visto hasta este momento, hemos analizado cada una de esas capas y como se comunican entre si: como el controlador incluye el motor de templates, como usa el motor de templates mediante la variable ($this->engine) y como en base a este objeto se comunica, llama y envía información a la capa vista; igualmente analizamos las funciones del motor de templates, analizamos el controlador y sus zonas, el super controlador y analizamos el funcionamiento y la creación de las vistas.

El triangulo negro, representa lo que veremos en este capitulo, la información sobre las clases, como la capa clases se comunica ya sea con el controlador o con el ORM y todo el papel que juega dentro de la aplicación.

Capa Clases
Esta capa contiene el equivalente a la base de datos pero en forma objetual, guarda y recoge la información de los objetos, sus atributos, sus funciones, sus métodos, entre otros.

Muchos desarrollos se basan en el diagrama de clases, y la programación orientada a objetos (POO) permite codificar fácilmente toda la información de ese diagrama.

La POO contiene elementos muy importantes, entre los principales están:
  • Abstracción: la cual denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características.
  • Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la unión de los componentes del sistema.
  • Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen.
  • Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas.

Reglas de la capa de clases:
  1. Todas las clases se deben encontrar en la carpeta work/classes/*
  2. El nombre de las clases debe ser en minúscula, singular y en caso de que contenga 2 o más palabras se debe usar el guion bajo y finalmente deben terminar con la extensión .php (ejemplo: user.php - person.php - doc.php).
  3. Si una clase hace referencia a una tabla, entonces ambas deben llamarse igual. Por ejemplo si se creo la tabla user, entonces la clase que referencia esta tabla también se debe llamar user.
  4. Todos las clases deben extender (o heredar) de la clase 'object_standart' (clase que se definirá mas adelante).
  5. Todos las variables o attributos principales de cada clase deben ser protegidos, y solo se podrá acceder a ellos mediante las funciones get y set definidas en el objeto estándar.
G Vars Objeto estándar