Els patrons de disseny es poden classificar en tres categories principals: creacionals, estructurals i de comportament. Aquesta classificació es basa en el tipus de problema que el patró resol i en la seva aplicació en el procés de desenvolupament de programari. A continuació, explorarem cadascuna d'aquestes categories en detall.

  1. Patrons Creacionals

Els patrons creacionals se centren en el procés de creació d'objectes. Aquests patrons ajuden a crear objectes de manera que es pugui separar el codi de creació de l'ús dels objectes, proporcionant flexibilitat i reutilització del codi.

Principals Patrons Creacionals:

  • Singleton: Assegura que una classe només tingui una instància i proporciona un punt d'accés global a aquesta instància.
  • Factory Method: Defineix una interfície per crear un objecte, però permet que les subclasses decideixin quin tipus d'objecte crear.
  • Abstract Factory: Proporciona una interfície per crear famílies d'objectes relacionats o dependents sense especificar les seves classes concretes.
  • Builder: Separa la construcció d'un objecte complex de la seva representació, permetent crear diferents representacions amb el mateix procés de construcció.
  • Prototype: Permet crear nous objectes copiant una instància existent, coneguda com a prototip.

  1. Patrons Estructurals

Els patrons estructurals es preocupen de la composició de classes i objectes. Aquests patrons ajuden a garantir que si una part del sistema canvia, la resta del sistema no es vegi afectada.

Principals Patrons Estructurals:

  • Adapter: Permet que interfícies incompatibles treballin juntes convertint la interfície d'una classe en una altra que el client espera.
  • Bridge: Separa l'abstracció d'una implementació, permetent que ambdues variïn independentment.
  • Composite: Permet que els objectes es composin en estructures d'arbre per representar jerarquies part-tot.
  • Decorator: Afegeix funcionalitat addicional a un objecte de manera dinàmica.
  • Facade: Proporciona una interfície simplificada a un conjunt de classes o a un subsistema complex.
  • Flyweight: Utilitza el compartiment de dades per suportar grans quantitats d'objectes petits de manera eficient.
  • Proxy: Proporciona un substitut o marcador de lloc per controlar l'accés a un altre objecte.

  1. Patrons de Comportament

Els patrons de comportament se centren en la comunicació entre objectes. Aquests patrons ajuden a definir com els objectes interactuen i com es distribueixen les responsabilitats entre ells.

Principals Patrons de Comportament:

  • Chain of Responsibility: Permet que més d'un objecte tingui l'oportunitat de gestionar una petició passant-la al llarg d'una cadena d'objectes.
  • Command: Converteix una petició en un objecte autònom que conté tota la informació sobre la petició.
  • Interpreter: Defineix una representació per a la gramàtica d'un llenguatge i un intèrpret que utilitza aquesta representació per interpretar frases en el llenguatge.
  • Iterator: Proporciona una manera de recórrer els elements d'una col·lecció sense exposar la seva representació subjacent.
  • Mediator: Defineix un objecte que encapsula com un conjunt d'objectes interactuen.
  • Memento: Permet capturar i externalitzar l'estat intern d'un objecte sense violar l'encapsulació, de manera que l'objecte pugui ser restaurat a aquest estat més tard.
  • Observer: Defineix una dependència un-a-molts entre objectes, de manera que quan un objecte canvia el seu estat, tots els seus dependents són notificats i actualitzats automàticament.
  • State: Permet que un objecte canviï el seu comportament quan el seu estat intern canvia.
  • Strategy: Defineix una família d'algoritmes, encapsula cada un d'ells i els fa intercanviables.
  • Template Method: Defineix l'esquelet d'un algoritme en una operació, deixant alguns passos a les subclasses.
  • Visitor: Representa una operació que es realitza sobre els elements de l'estructura d'un objecte.

Resum

En aquesta secció, hem explorat les tres categories principals de patrons de disseny: creacionals, estructurals i de comportament. Cada categoria aborda diferents aspectes del desenvolupament de programari i proporciona solucions reutilitzables per a problemes comuns. En els següents mòduls, aprofundirem en cadascun d'aquests patrons amb exemples pràctics i exercicis per ajudar-te a comprendre i aplicar aquests patrons en els teus projectes de programari.

© Copyright 2024. Tots els drets reservats