La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES.

Presentaciones similares


Presentación del tema: "PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES."— Transcripción de la presentación:

1 PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES

2 PARTE 1: CONCEPTOS INICIALES Antecedentes Contexto Actual Patrones de diseño Aportes de los patrones Tipos de Patrones Antipatrones

3 ANTECEDENTES Particularidades de la ingeniería. Costumbres y “supersticiones”. Conocimiento intuitivo. El “maestro de obra” vs. El “ingeniero”. “Using Pattern Languages for OO Programs” (1987) The Gang of Four.

4 CONTEXTO ACTUAL: INFORMÁTICA Disciplina joven. Casos de fracaso. Estadísticas negativas. Mejoras en los últimos años.

5 PATRONES DE DISEÑO “Una solución probada que se puede aplicar con éxito a determinado tipo de problemas que aparecen repetidamente en un algún campo”. Una abstracción. Un planteamiento.

6 APORTES DE LOS PATRONES Da un conjunto de elementos reusables. Catálogo de soluciones a problemas enfrentados exitosamente. Brinda un lenguaje común. Aporta una base de conocimiento.

7 TIPOS DE PATRONES Patrones creacionales Patrones estructurales Patrones de comportamiento

8 ANTIPATRONES Código “Spaguetti” The Blob Cortar y pegar

9 Teoría => Aplicación

10 PARTE 2: PATRONES EN TECNOLOGÍAS DE DESARROLLO

11 TECNOLOGÍA JAVA Planteamiento de soluciones optimas. Reutilización de soluciones anteriores satisfactorias. Abstraer las soluciones para ampliar su aplicación. Los patrones abarcan todas las etapas de desarrollo de Software.

12 TECNOLOGÍA JAVA J2EE es una plataforma de programación para desarrollar y ejecutar aplicaciones hechas en Java.[JAVA1] J2EE presenta una arquitectura de N niveles distribuida, basándose en componentes de software modulares ejecutándose sobre un servidor de aplicaciones.[JAVA1]

13 TECNOLOGÍA JAVA Cinco capas: http://www.javaworld.com/columns/jw-java-design-patterns-index.html

14 TECNOLOGÍA JAVA Capa de Presentacion Decorating Filter / Intercepting Filter. Front Controller/ Front Component. View Helper. Composite view. Service To Worker. Dispatcher View.

15 TECNOLOGÍA JAVA Decorating Filter Maneja varios tipos de peticiones que requieren un procesamiento determinado. Aplicado a procesos de validación de Session. Elimina las comprobaciones mediante filtros concatenados.

16 TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Decorating Filter. http://java.sun.com/blueprints/corej2eepatterns/Patterns/

17 TECNOLOGÍA JAVA Capa de Lógica del Negocio Business Delegate Value Object Assembler. Value List Handler/ Page-by-Page Iterator/ Paged List. Service Locator.

18 TECNOLOGÍA JAVA Business Delegate Un objeto de la capa de presentacion llama a métodos remotos de los objetos de la capa del negocio. Búsqueda de elementos del negocio ( Lookup) Llamada al servicio requerido.

19 TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Business Delegate. http://java.sun.com/blueprints/corej2eepatterns/Patterns/

20 TECNOLOGÍA JAVA Capa de Integración Data Access Object. Service Activator.

21 TECNOLOGÍA JAVA Data Access Object Consiste en utilizar un objeto como media de acceso a un Data Source (base de datos, sistema de archivos, etc.) Abstrae y encapsula las operaciones relacionadas con el tratamiento de la base de datos.

22 TECNOLOGÍA JAVA A continuación se muestra el esquema de funcionamiento del patrón Data Access Object: http://java.sun.com/blueprints/corej2eepatterns/Patterns/

23 TECNOLOGÍA PHP PHP5 2004 es la primera versión que soporta la POO. Debemos considerar que muchos patrones de negocio trabajan muy bien con lenguajes cuya aplicación se procesa en tiempo de ejecución. PHP no trabaja de esta manera. Por cada solicitud, o interacción con el usuario, un nuevo script es solicitado, por lo tanto, algunos patrones deben ser tratados con más cuidado.

24 TECNOLOGÍA PHP [A pattern] is a solution to a problem in a context. -The Gang of Four, Design Patterns: Elements of Reusable Object-Oriented Software Patrones de diseño Patrón Singleton: clase especial que genera un y sólo un instancia del objeto. Patrón Abstract Factory: agrupa la creación de productos (objetos) con funcionalidades relacionadas.

25 TECNOLOGÍA PHP In the world of software, a pattern is a tangible manifestation of an organization’s tribal. -Grady Brooch in Core J2EE Patterns Patrón Singleton

26 TECNOLOGÍA PHP In the world of software, a pattern is a tangible manifestation of an organization’s tribal. -Grady Brooch in Core J2EE Patterns Patrón Singleton Class Preferencias { private $props = array(); private static $instancia; private function _constructor() { } public static function getInstacia(){ if (vacio(self::$instancia)){ self::$instacia = new Preferencias(); } return self::$instancia; } public function setProperty($clave, $valor) { $this->props[$key] = $valor; } public function getProperty($key){ return $this->props{$key]; }

27 TECNOLOGÍA PHP Patrón Abstract Factory

28 TECNOLOGÍA.NET 3 categorías - Patrones Creacionales. - Patrones Estructurales. - Patrones de Comportamiento.

29 TECNOLOGÍA.NET Patrones Creacionales Abstract factory. Builder. Singleton. Patrones Estructurales Facade. Composite.

30 TECNOLOGÍA.NET Patrones de Comportamiento Observer. Iterator. Proxy.

31 TECNOLOGÍA.NET Patrón facade consiste en simplificar el acceso a un conjunto de clases proporcionando una única clase que todos utilizaran para interactuar con ellas.[NET1] http://corengine.files.wordpress.com/2009/04/facade1.gif

32 TECNOLOGÍA.NET Ejemplo static void Main() { // Facade Mortgage mortgage = new Mortgage(); // Evaluate mortgage eligibility for customer Customer customer = new Customer("Ann McKinsey"); bool eligible = mortgage.IsEligible(customer, 125000); Console.WriteLine("\n" + customer.Name + " has been " + (eligible ? "Approved" : "Rejected")); Console.ReadKey(); }

33 TECNOLOGÍA.NET // Subsistema de Clase A class Bank { public bool HasSufficientSavings(Customer c, int amount) { Console.WriteLine("Check bank for " + c.Name); return true; } // Subsistema de Clase B class Credit { public bool HasGoodCredit(Customer c) { Console.WriteLine("Check credit for " + c.Name); return true; }

34 TECNOLOGÍA.NET // Subsistema de Clase C class Loan { public bool HasNoBadLoans(Customer c) { Console.WriteLine("Check loans for " + c.Name); return true; } // Cliente class Customer { private string _name; …….. }

35 TECNOLOGÍA.NET class Mortgage { private Bank _bank = new Bank(); private Loan _loan = new Loan(); private Credit _credit = new Credit(); public bool IsEligible(Customer cust, int amount) { Console.WriteLine("{0} applies for {1:C} loan\n",cust.Name, amount); bool eligible = true; if (!_bank.HasSufficientSavings(cust, amount)) { eligible = false; } else if (!_loan.HasNoBadLoans(cust)) { eligible = false; } else if (!_credit.HasGoodCredit(cust)) { eligible = false; } return eligible; }

36 CONCLUSIONES Interoperabilidad de los patrones. Mejor aprovechamiento de las características la POO. Necesidad de revisión continua de la aplicación de patrones de diseño.

37 Referencias [JAVA1] http://www.java.com/es/ - Sitio Web Oficial de Sun Microsystems en ingles (visitado el 13/09/2010)http://www.java.com/es/ [NET1]http://siul02.si.ehu.es/~alfredo/iso/0 6Patrones.pdf - Patron Facade (visitado el 15-09-10)http://siul02.si.ehu.es/~alfredo/iso/0 6Patrones.pdf


Descargar ppt "PATRONES DE DISEÑO PROCESO DE CONSTRUCCIÓN DE SOFTWARE 2 GRUPO 2: LOS PATRONES."

Presentaciones similares


Anuncios Google