logo

Patrons de disseny en Java | Tutorial de patrons de disseny de Java

Els patrons de disseny a Java ajuden els desenvolupadors a crear un codi més fàcil de mantenir, flexible i entenedor. Encapsulen l'experiència i l'experiència d'arquitectes i desenvolupadors de programari experimentats, facilitant que els programadors més nous segueixin les millors pràctiques establertes.

Què són els patrons de disseny?

Un patró de disseny és una solució genèrica repetible a un problema freqüent en el disseny de programari que s'utilitza en enginyeria de programari. No és un disseny complet que es pugui escriure en codi immediatament. És una descripció o model per a la resolució de problemes que es pot aplicar en una varietat de contextos.



Tutorial de patrons de disseny de Java

Tipus de patrons de disseny a Java

Els patrons de disseny de Java es divideixen en tres categories:

  • creativa,
  • estructural, i
  • patrons de disseny de comportament.

1. Patrons de disseny creatiu en Java

Els patrons de disseny creatiu són un subconjunt de patrons de disseny en el desenvolupament de programari. S'ocupen del procés de creació d'objectes, intentant que sigui més flexible i eficient. Fa que el sistema sigui independent i com es creen, es componen i es representen els seus objectes.



Tipus de patrons de disseny creatiu a Java:

1.1 Mètode de fàbrica

Factory Method és un patró de disseny de creació, que proporciona una interfície per crear objectes a la superclasse, però les subclasses s'encarreguen de crear la instància de la classe.

java xor

1.2 Mètode abstracte de fàbrica

Abstract Factory Method és un patró de disseny de creació, proporciona una interfície per crear famílies d'objectes relacionats o dependents sense especificar les seves classes concretes.

1.3 Mètode del constructor

El mètode del constructor és un patró de disseny de creació, proporciona una interfície per construir un objecte i després tenen classes de constructor concretes que implementen aquesta interfície per crear objectes específics de manera gradual.



1.4 Mètode del prototip

El Mètode Prototip és un patró de disseny de creació, que permet crear nous objectes amb la mateixa estructura i estat inicial que un objecte existent sense especificar explícitament la seva classe o detalls de construcció.

1.5 Mètode Singleton

El mètode Singleton és un patró de disseny creatiu que proporciona una classe només té una instància, i aquesta instància proporciona un punt global d'accés a ella.

mylivecricket per al cricket en directe

2. Patrons de disseny estructural en Java

Els patrons de disseny estructural són un subconjunt de patrons de disseny en el desenvolupament de programari que se centren en la composició de classes o objectes per formar estructures més grans i complexes. Ajuden a organitzar i gestionar les relacions entre objectes per aconseguir una major flexibilitat, reutilització i manteniment en un sistema de programari.

Tipus de patrons de disseny estructural a Java:

2.1 Mètode adaptador

El mètode de l'adaptador és un patró de disseny estructural, us permet fer que dues interfícies incompatibles funcionin juntes creant un pont entre elles.

2.2 Mètode pont

Bridge Method és un patró de disseny estructural, proporciona al disseny separa l'abstracció d'un objecte de la seva implementació de manera que els dos puguin variar de manera independent.

2.3 Mètode compost

El mètode compost és un patró de disseny estructural, s'utilitza per compondre objectes en estructures d'arbre per representar jerarquies parcials. Aquest patró tracta tant objectes individuals com composicions d'objectes, permetent als clients treballar amb estructures complexes d'objectes com si fossin objectes individuals.

2.4 Mètode decorador

El mètode del decorador és un patró de disseny estructural, i t permet afegir comportament a objectes individuals, ja sigui de manera estàtica o dinàmica, sense afectar el comportament d'altres objectes de la mateixa classe.

2.5 Mètode de façana

El mètode de façana és un patró de disseny estructural, proporciona una interfície simplificada i de nivell superior a un conjunt d'interfícies d'un subsistema, facilitant la interacció dels clients amb aquest subsistema.

2.6 Mètode de proxy

El mètode proxy és un patró de disseny estructural, proporciona per crear un substitut d'un objecte, que pot actuar com a intermediari o controlar l'accés a l'objecte real.

2.7 Mètode pes mosca

El mètode Flyweight és un patró de disseny estructural, s'utilitza quan necessitem crear molts objectes d'una classe. Com que cada objecte consumeix espai de memòria que pot ser crucial per als dispositius amb poca memòria, es pot aplicar un patró de disseny de pes mosca per reduir la càrrega de memòria compartint objectes.

3. Patrons de disseny de comportament en Java

Els patrons de disseny de comportament són un subconjunt de patrons de disseny en el desenvolupament de programari que tracten la comunicació i la interacció entre objectes i classes. Se centren en com els objectes i les classes col·laboren i es comuniquen per dur a terme tasques i responsabilitats.

Tipus de patró de disseny de comportament a Java:

3.1 Mètode de comandament

El mètode d'ordres és un patró de disseny de comportament, promou un acoblament fluix entre l'emissor (client) i el receptor (l'objecte que realitza l'operació) i proporciona una manera de suportar les operacions que no es poden fer.

3.2 Mètode iterador

El mètode iterador és un patró de disseny de comportament, i t proporciona una manera d'accedir a elements d'un objecte agregat (una col·lecció) seqüencialment sense exposar la representació subjacent d'aquesta col·lecció.

llista enllaçada i llista de matrius

3.3 Mètode mediador

El mètode del mediador és un patró de disseny de comportament, i t promou l'acoblament fluix entre objectes centralitzant la seva comunicació a través d'un objecte mediador. En lloc que els objectes es comuniquin directament entre ells, es comuniquen a través del mediador, que encapsula la lògica d'interacció i coordinació.

3.4 Mètode Memento

El mètode Momento és un patró de disseny de comportament, que permet desar i restaurar l'estat anterior d'un objecte sense revelar els detalls de la seva implementació.

3.5 Mètode observador

El mètode de l'observador és un patró de disseny de comportament, defineix una dependència d'un a molts entre objectes, de manera que quan un objecte (el subjecte) canvia d'estat, tots els seus dependents (observadors) són notificats i actualitzats automàticament.

3.6 Mètode de l'estat

El mètode d'estat és un patró de disseny de comportament, permet que un objecte alteri el seu comportament quan el seu estat intern canvia.

3.7 Mètode estratègic

Strategy Method és un patró de disseny de comportament, defineix una família d'algoritmes, encapsula cadascun i els fa intercanviables i permet al client triar un algorisme adequat d'una família d'algorismes en temps d'execució.

3.8 Mètode de plantilla

El mètode de plantilla és un patró de disseny de comportament, defineix l'esquelet d'un algorisme en un mètode, però permet que les subclasses alterin alguns passos d'aquest algorisme sense canviar-ne l'estructura.

3.9 Mètode visitant

El mètode del visitant és un patró de disseny de comportament, s'utilitza quan tens un conjunt d'objectes estructurats i jeràrquics i vols realitzar diverses operacions sobre aquests objectes sense modificar-ne les classes.

3.10 Mètode d'objecte nul

El mètode d'objecte nul és un patró de disseny de comportament, s'utilitza per gestionar l'absència d'un objecte vàlid proporcionant un objecte que no fa res o proporciona un comportament predeterminat.

Altres referències:

  • Pregunta d'entrevista sobre els 30 millors patrons de disseny de Java
  • Els 10 millors llibres de patrons de disseny de Java
  • Patrons de disseny: una habilitat imprescindible per als desenvolupadors de programari el 2019
  • Patrons de disseny: entendre la importància amb exemples de la vida real
  • Patrons de disseny: dissenyeu un sistema de reserva d'entrades de pel·lícules com Bookmyshow
  • Patrons de disseny: com dissenyar un aparcament utilitzant principis orientats a objectes?