programación por capas: capa de clases

19
Programación por capas: Capa de Clases Diseño y Construcción de Productos de Software Daniel Correa Botero Jeferson David Ossa Universidad Nacional de Colombia Sede Medellín 2013

Upload: dugan

Post on 06-Jan-2016

77 views

Category:

Documents


0 download

DESCRIPTION

Programación por capas: Capa de Clases. Diseño y Construcción de Productos de Software Daniel Correa Botero Jeferson David Ossa Universidad Nacional de Colombia Sede Medellín 2013. Resumen Capas. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Programación por capas: Capa de Clases

Programación por capas:Capa de Clases

Diseño y Construcción de Productos de SoftwareDaniel Correa Botero

Jeferson David OssaUniversidad Nacional de Colombia

Sede Medellín 2013

Page 2: Programación por capas: Capa de Clases

Resumen CapasEl triangulo rojo superior es lo visto hasta el momento, ahora continuaremos con la capa de clases.

Page 3: Programación por capas: Capa de Clases

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 este diagrama.

Page 4: Programación por capas: Capa de Clases

Reglas de la Capa de Clases1) Todas las clases se deben encontrar en la carpeta glight/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 guión 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á más adelante).

5) Todos las variables o atributos 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.

Page 5: Programación por capas: Capa de Clases

Objeto Estándar

• Recoge las funciones en común (get – set – assign - components - construct).

• Se encuentra en la ruta glight/modules/object_standart.php

• Esta archivo no debe ser modificado.

Page 6: Programación por capas: Capa de Clases

Caso de Estudio

-ID : int-Name : string-Charge : string

Boss

1..* 0..*

-ID : int-Name : string-Salary : double

Clerk

Page 7: Programación por capas: Capa de Clases

classes/boss.php

Page 8: Programación por capas: Capa de Clases

classes/clerk.php

Page 9: Programación por capas: Capa de Clases

classes/clerk.php (continuación): Relational Keys

Page 10: Programación por capas: Capa de Clases

ConstructorEl constructor es llamado automáticamente una vez se hace una creación de un objeto de una clase: $person = new person();

El constructor recibe 4 parámetros TODOS OPCIONALES:

- $data: es un objeto (no puede ser un array debe ser un objeto) que contiene la información de los atributos que se deseen establecer por primera vez.- $components: es una lista opcional de las relacionales de la clase (será profundizado más adelante).- $orm: es un objeto de clase ORM con información importante que se utiliza cuando se quiere asignar un componente (será profundizado más adelante).- $auxiliars: esta variable se usa cuando se quiere establecer atributos adicionales a los propios de la clase (más adelante se profundiza)

Page 11: Programación por capas: Capa de Clases

EjemploConstructor

(constructor.php)Nota: las clases no necesitan ser incluidas en la zona de inclusión, en functions.php existe una función autoload que carga estos archivos automáticamente.

Page 12: Programación por capas: Capa de Clases

Get y SetGET: Permite obtener el valor de alguno de los atributos del objeto

(se recomienda usar solo con atributos y no con componentes o con auxiliares).

- Recibe un solo parámetro que es el atributo que queremos obtener.

SET: Permite modificar el valor de alguno de los atributos del objeto.

- Recibe 2 parámetros el atributo que se desea modificar y el valor que se le desea asignar.

Page 13: Programación por capas: Capa de Clases

Ejemplo Get y Set (get_set.php)

Page 14: Programación por capas: Capa de Clases

Secciones de una claseAttribute variables: son los atributos de cada

clase (en caso de tener base de datos: cada atributo debe representar una columna de la tabla correspondiente).

Primary key: Esta función retorna el nombre de el ó los atributos los cuales representan la clave primaria de cada clase.

Page 15: Programación por capas: Capa de Clases

Secciones de una clase Attribute Info: Nos permite obtener información acerca de los atributos de cada

clase, su nombre y si representa una clave foránea o no.

- "foreign name": (sólo usado cuando el atributo representa una clave foránea) representa el nombre de la relación a la cual hace referencia. En el ejemplo anterior el nombre de la relación seria "b_p" (más adelante se detallará información sobre los nombres de las relaciones).

- "foreign": (sólo usado cuando el atributo representa una clave foránea) representa el nombre de la clase con la cual se relaciona, en este caso “boss”.

- "foreign attribute": (sólo usado cuando el atributo representa una clave foránea) representa el nombre del atributo de la clase "boss" (en este caso) con el cual se relaciona y con el cual se debe comparar para verificar que si pertenezca a la relación.

Page 16: Programación por capas: Capa de Clases

Secciones de una Clase

Relational Keys: Las claves relacionales, representan relaciones entre las diferentes clases, se usan para saber en base a que atributos se dan estas relaciones.

Page 17: Programación por capas: Capa de Clases

Secciones de una Clase Class functions and methods: Esta zona esta destinada para métodos y

funciones propias de cada clase, cada desarrollador podrá programar en esta zona las funciones que considere necesarias para su software y que se encuentren en el diagrama de clases.

• Agregar la función aumento, la cual aumenta el sueldo en 10%.

Page 18: Programación por capas: Capa de Clases

Ejemplo función de una clase

(func.php)

Se puede adicionar antes de $data->document = “1001”;

La línea:settype($data,’object’);

Para evitar unas alertas que a veces aparecen por crear un objeto sin instanciar.

Page 19: Programación por capas: Capa de Clases

Actividad:

A) Crear 5 personas en memoria.B) Crear una función de la clase clerk que permita encontrar la persona con menor salario.C) Crear una función estática (de modo tal que sea pertinente) de la clase clerk que permita encontrar el promedio de los salarios.D) Mostrar la información de las 5 personas, el promedio de salarios y el menor salario en un template.

Ayuda: Operador de Resolución de Ámbito (::):Class::staticFunc();