11 de marzo - JoseA4718/Portafolio-I-2020 GitHub Wiki
Hoy pasé al frente a explicar que se hizo la clase pasada. Se respondió a la tarea moral.
Patrones de Arquitectura
Los patrones de diseño son aplicados en la fase de diseño del sistema a nivel de clases. Antes de la parte del diseño se debe definir la arquitectura del sistema. Las compañías tienen arquitectos de sistemas. La arquitectura incluye definir los componentes de un sistema. Estos componentes son las piezas del sistema. La arquitectura está en un nivel por encima que el diseño, por esto los patrones de diseño no son considerados en esta fase. Analogamente a los patrones de diseño, estos son patrones de arquitectura.
De los patrones de arquitecturas mas conocidos es el MVC "Model-View-Controller" , divide el sistema en un modelo, vista y un controlador. Es muy utilizado para desarrollo web.
El Controller envía comandos al modelo para actualizar el estado del modelo, también puede mandar comandos a la vista para actualizar la representación del modelo. Contiene la lógica principal de la aplicación y el flujo de la interacción del usuario.
El Modelo almacena toda la información que solicita el controller y que se le despliega al cliente en el view. Cuando ocurre un cambio en la data el controller actualiza el modelo. El modelo usualmente representa tablas de bases de datos o cualquier otra fuente que garantice persistencia de datos. (Persistencia de datos: es que a la hora de actualizar un dato esa es la única versión que los usuarios tiene que ver).
El View es la capa con la interactua el usuario, ahí se lo solicita al controller y el controller es el que se encarga de todo. También en el view de despliega los cambios ocurridos.
Estructuras de Datos Lineales
Un Abstract Data Type es un conjunto de objetos que tienen definidos un conjunto de operaciones. Son abstracciones matemáticas. Cuando decimos tipos de datos: integers, reals, booleans. Cada uno de ellos tienen operaciones asociadas. Pero cuando pensamos en ADTs pensamos en listas, colas, grafos, conjuntos. Tiene operadores asociados: add, remove, contains. Las clases pueden ser utilizadas para implementar ADTs, pues nos permiten esconder operaciones en los detalles de la implementación. ADT no es un concepto de POO, pero si se utiliza, se puede ver como una interfaz a una clase con ciertas características. Cuando implementamos un ADT deberíamos asegurarnos de no tener expuestos los detalles de implementación. Las opreaciones parte de los ADT son a gusto de los diseñadores.
Array:
Son objetos que tiene un tamaño limitado, no existe un keyword para declarar arreglos.