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.
- 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.
- 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.
- 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.
Curs de Patrons de Disseny de Programari
Mòdul 1: Introducció als Patrons de Disseny
- Què són els Patrons de Disseny?
- Història i Origen dels Patrons de Disseny
- Classificació dels Patrons de Disseny
- Avantatges i Desavantatges d'Usar Patrons de Disseny
Mòdul 2: Patrons Creacionals
Mòdul 3: Patrons Estructurals
Mòdul 4: Patrons de Comportament
- Introducció als Patrons de Comportament
- Chain of Responsibility
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Mòdul 5: Aplicació de Patrons de Disseny
- Com Seleccionar el Patró Adequat
- Exemples Pràctics d'Ús de Patrons
- Patrons de Disseny en Projectes Reals
- Refactorització Usant Patrons de Disseny
Mòdul 6: Patrons de Disseny Avançats
- Patrons de Disseny en Arquitectures Modernes
- Patrons de Disseny en Microserveis
- Patrons de Disseny en Sistemes Distribuïts
- Patrons de Disseny en Desenvolupament Àgil