1. Libros
  2. Design Patterns en PHP - Los 23 patrones de diseño: descripciones y soluciones ilustradas en UML2 y PHP (2ª edición)

Design Patterns en PHP Los 23 patrones de diseño: descripciones y soluciones ilustradas en UML2 y PHP (2ª edición)

  • Disponible
  • Expedido en 24 horas
  • Envío gratis a partir de 25 € de compra
  • Versión online gratis por un año
  • Consulta inmediata
  • Versión online digital, no descargable
  • Acceso ilimitado 24/7, durante 10 años
  • Acceso ilimitado 24/7, durante 10 años
  • Todos los libros online de ENI
  • Más de 5 novedades todos los meses
  • Novedades disponibles el mismo día de su publicación
  • Acceso 100% online

Presentación

Este libro presenta de manera precisa y práctica los 23 patrones de diseño (design patterns) fundamentales y los ilustra con ejemplos adecuados y rápidos de entender. Cada ejemplo se describe en UML 2 y en PHP, en forma de un pequeño programa completo y ejecutable. Para cada patrón de diseño, los autores detallan su nombre, el problema correspondiente, la solución aportada, sus dominios de aplicación y su estructura genérica.

Este libro está pensado para los diseñadores y desarrolladores en Programación Orientada a Objetos. Para entenderlo correctamente, es deseable tener conocimientos de los principales elementos de los diagramas de clases UML y del lenguaje PHP (versión 7 o superior) y sus objetivos.

El libro se organiza en tres partes que corresponden a las tres familias de patrones de diseño: los patrones de diseño de construcción, los patrones de diseño de estructuración y los patrones de diseño de comportamiento.

Un capítulo introduce tres variantes de patrones de diseño existentes, mostrando la gran flexibilidad en la aplicación de estos patrones. También se estudia el patrón de diseño compuesto MVC (Model-View-Controller).

Los ejemplos que se utilizan en estas partes son el resultado de una aplicación de venta on-line de vehículos y se pueden descargar en el sitio web de Ediciones ENI en la dirección www.ediciones-eni.com.

Índice

  • Introducción a los patrones de diseño
    • 1. Principios básicos del diseñador de objetos
      • 1.1 Los principios SOLID
        • 1.1.1 El principio de responsabilidad única
        • 1.1.2 Abierto para su extensión, pero cerrado para su modificación
        • 1.1.3 El principio de sustitución de Liskov
        • 1.1.4 Segregación de las interfaces
        • 1.1.5 La inversión de las dependencias
    • 2. Design patterns o patrones de diseño
    • 3. Descripción de los patrones de diseño
    • 4. Catálogo de patrones de diseño
    • 5. Organización del catálogo de patrones de diseño
    • 6. Aspectos específicos de los ejemplos de código PHP
  • Caso de estudio: venta online de vehículos
    • 1. Descripción del sistema
    • 2. Cuaderno de carga
    • 3. Uso de patrones de diseño
  • Introducción a los patrones de construcción
    • 1. Presentación
    • 2. Problemas ligados a la creación de objetos
      • 2.1 Problemática
      • 2.2 Soluciones propuestas por los patrones de construcción
  • El patrón de diseño Abstract Factory
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de uso
    • 5. Ejemplo en PHP
  • El patrón de diseño Builder
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de uso
    • 5. Ejemplo en PHP
  • El patrón de diseño Factory Method
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de uso
    • 5. Ejemplo en PHP
  • El patrón de diseño Prototype
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboración
    • 4. Dominios de uso
    • 5. Ejemplo en PHP
  • El patrón de diseño Singleton
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboración
    • 4. Dominio de uso
    • 5. Ejemplos en PHP
      • 5.1 Documentación en blanco
      • 5.2 La clase Comercial
  • Introducción a los patrones de estructuración
    • 1. Presentación
    • 2. Composición estática y dinámica
  • El patrón de diseño Adapter
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Bridge
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Composite
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Decorator
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Facade
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Flyweight
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominio de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Proxy
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • Introducción a los patrones de comportamiento
    • 1. Presentación
    • 2. Distribución por herencia o por delegación
  • El patrón de diseño Chain of Responsibility
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Command
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Interpreter
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Iterator
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Mediator
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Memento
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Observer
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño State
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Strategy
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Template Method
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • El patrón de diseño Visitor
    • 1. Descripción
    • 2. Ejemplo
    • 3. Estructura
      • 3.1 Diagrama de clases
      • 3.2 Participantes
      • 3.3 Colaboraciones
    • 4. Dominios de aplicación
    • 5. Ejemplo en PHP
  • Composición y variación de patrones de diseño
    • 1. Preámbulo
    • 2. El patrón de diseño Pluggable Factory
      • 2.1 Introducción
      • 2.2 Estructura
      • 2.3 Ejemplo en PHP
    • 3. El patrón de diseño Reflective Visitor
      • 3.1 Discusión
      • 3.2 Estructura
      • 3.3 Ejemplo en PHP
    • 4. El patrón de diseño Multicast
      • 4.1 Descripción y ejemplo
      • 4.2 Estructura
      • 4.3 Ejemplo en PHP
      • 4.4 Discusión: comparación con el patrón de diseño Observer
  • El patrón de diseño composite MVC
    • 1. Introducción al problema
    • 2. El patrón de diseño composite MVC
    • 3. Ejemplo en PHP
      • 3.1 Introducción
      • 3.2 Arquitectura
      • 3.3 Estudio del código
  • Los design patterns en el diseño de aplicaciones
    • 1. Modelización y diseño con patrones de diseño
    • 2. Otras aportaciones de los patrones de diseño
      • 2.1 Una base de datos de conocimiento común
      • 2.2 Un conjunto recurrente de técnicas de diseño
      • 2.3 Una herramienta pedagógica del enfoque orientado a objetos
    • 3. Unas prácticas muy extendidas
  • Ejercicios
    • 1. Enunciado de los ejercicios
      • 1.1 Creación de tarjetas de pago
        • 1.1.1 Creación en función del cliente
        • 1.1.2 Creación con ayuda de una fábrica
      • 1.2 Autorización de tarjetas de pago
      • 1.3 Sistema de archivos
      • 1.4 Navegador gráfico de objetos
      • 1.5 Estados de la vida profesional de una persona
      • 1.6 Caché de un diccionario persistente de objetos
    • 2. Corrección de los ejercicios
      • 2.1 Creación de tarjetas de pago
        • 2.1.1 Creación en función del cliente
        • 2.1.2 Creación con ayuda de una fábrica
      • 2.2 Autorización de tarjetas de pago
      • 2.3 Sistema de archivos
      • 2.4 Navegador gráfico de objetos
      • 2.5 Estados de la vida profesional de una persona
      • 2.6 Caché de un diccionario persistente de objetos
    • índice

Autores

Laurent DEBRAUWERMás información

Laurent DEBRAUWER es doctor en informática por la Universidad de Lille 1. Es autor de programas en el ámbito de la lingüística y la semántica que distribuyen las empresas METAAGENT Software y Semantica, que él mismo dirige. Está especializado en el enfoque orientado a objetos y enseña ingeniería del software y diseño de patrones en la Universidad de Luxemburgo.

Sébastien FERRANDEZMás información

Sébastien FERRANDEZ es ingeniero diplomado en el Conservatorio Nacional de Artes y Oficios de Aix-en-Provence y enseñó diversas disciplinas durante 10 años, entre las que cabe destacar el desarrollo web y las bases de datos relacionales o NoSQL. En la actualidad, es consultor y formador independiente, y transmite en sus libros toda su experiencia tanto en la base de datos MongoDB como en los patrones de diseño en PHP.

Yannick EVAINMás información

Yannick EVAIN está estudiando el último año de ingeniería de telecomunicaciones en Lille. Anteriormente, trabajó durante 14 años en la SNCF, de los cuales 10 estuvo diseñando sistemas electrónicos digitales e informáticos para hardware de tipo rolling. También ha realizado ingeniería inversa de sistemas que mezclando aplicaciones web basadas en PHP y aplicaciones desarrolladas a medida.

Características

  • Nivel Medio a Experto
  • Número de páginas 398 páginas
  • Publicación noviembre 2021
    • Encuadernación rústica - 17 x 21 cm
    • ISBN: 978-2-409-03343-8
    • EAN: 9782409033438
    • Ref. ENI: EIT2PHDES
  • Nivel Experto a Medio
  • Publicación noviembre 2021
    • HTML
    • ISBN: 978-2-409-03344-5
    • EAN: 9782409033445
    • Ref. ENI: LNEIT2PHDES

Descargas

Al completar este formulario, acepta recibir información y comunicaciones comerciales sobre nuestros productos y servicios. Puede darse de baja de nuestra newsletter en cualquier momento. Si desea conocer más información acerca de nuestra política de protección de datos, pulse aquí.
  • Descargar los ejemplos del libro (164 Ko)