CodeGym /Java Blog /Willekeurig /Ontwerppatronen in Java [Deel 1]
John Squirrels
Niveau 41
San Francisco

Ontwerppatronen in Java [Deel 1]

Gepubliceerd in de groep Willekeurig
Dit is een kort artikel over ontwerppatronen in Java. Er zullen geen patroonimplementaties zijn, alleen een lijst met patronen in Java, samen met een korte beschrijving van elk. Voor degenen die al bekend zijn met het onderwerp, zal dit nuttig zijn als overzicht en samenvatting. Omgekeerd zullen degenen die voor het eerst over patronen leren, hiervan profiteren als een eerste overzicht van het onderwerp voordat ze dieper graven. Ontwerppatronen in Java [Deel 1] - 1 Ontwerp patronenzijn kant-en-klare oplossingen voor veel voorkomende programmeertaken. Het is geen klasse of bibliotheek die aan een project kan worden gekoppeld. Het is iets meer. Ontwerppatronen die geschikt zijn voor elke taak worden in elk specifiek geval geïmplementeerd. Houd er rekening mee dat een ontwerppatroon bij onjuiste toepassing of bij een ongeschikte taak veel problemen kan veroorzaken. Een correct toegepast patroon kan u echter helpen taken gemakkelijk en eenvoudig uit te voeren.

Soorten patronen:

  • scheppend
  • structureel
  • gedragsmatig
Aanmaakpatronen bieden initialisatiemechanismen waarmee u op handige manieren objecten kunt maken. Structurele patronen definiëren relaties tussen klassen en objecten, waardoor ze kunnen samenwerken. Gedragspatronen worden gebruikt om interactie tussen entiteiten te vereenvoudigen.

creatie:

  • Singleton - beperkt het maken van een klasse tot een enkele instantie en biedt toegang tot die enkele instantie.

  • Fabriek — gebruikt wanneer we een superklasse hebben met meerdere subklassen en we een subklasse moeten retourneren op basis van invoer.

  • Abstracte fabriek — gebruikt een superfabriek om fabrieken te maken, die we vervolgens gebruiken om objecten te maken.

  • Builder — gebruikt om complexe objecten te maken met behulp van eenvoudige objecten. Het creëert geleidelijk een groot object van een klein, eenvoudig object.

  • Prototype — helpt de prestaties te verbeteren bij het maken van dubbele objecten; in plaats van een nieuw object te maken, maakt en retourneert het een kloon van een bestaand object.

Structureel:

  • Adapter — een converter tussen twee incompatibele objecten. We kunnen het adapterpatroon gebruiken om twee incompatibele interfaces te combineren.

  • Samengesteld — gebruikt één klasse om een ​​boomstructuur weer te geven.

  • Proxy — biedt de functionaliteit van een andere klasse.

  • Vlieggewicht - hergebruikt objecten in plaats van een groot aantal vergelijkbare objecten te maken.

  • Gevel — biedt een eenvoudige interface voor een klant, die de interface gebruikt om met het systeem te communiceren.

  • Bridge — maakt specifieke klassen onafhankelijk van klassen die een interface implementeren.

  • Decorator — voegt nieuwe functionaliteit toe aan een bestaand object zonder vast te zitten aan de structuur ervan.

Gedragsmatig:

  • Sjabloonmethode — definieert een basisalgoritme en stelt afstammelingen in staat om enkele stappen van het algoritme te overschrijven zonder de algemene structuur ervan te wijzigen.

  • Bemiddelaar — biedt een intermediaire klasse die alle communicatie tussen verschillende klassen afhandelt.

  • Keten van verantwoordelijkheid — maakt het mogelijk om strikte afhankelijkheid tussen de afzender en de ontvanger van een verzoek te vermijden; bovendien kan het verzoek door meerdere objecten worden verwerkt.

  • Waarnemer — stelt een object in staat gebeurtenissen in andere objecten te volgen en daarop te reageren.

  • Strategie — maakt het mogelijk om strategieën (algoritmen) tijdens runtime te wijzigen.

  • Commando — een interface die een methode declareert voor het uitvoeren van een specifieke actie.

  • Staat — staat toe dat een object zijn gedrag verandert afhankelijk van zijn toestand.

  • Bezoeker — gebruikt om bewerkingen op groepen verwante objecten te vereenvoudigen.

  • Tolk — definieert een grammatica voor een eenvoudige taal in het probleemdomein.

  • Iterator - benadert achtereenvolgens elementen van een verzameling zonder de onderliggende vorm te kennen.

  • Memento — gebruikt om de staat van een object op te slaan; deze toestand kan later worden hersteld.

Terwijl je de CodeGym-cursus doorloopt, zul je een aantal patronen in deze lijst tegenkomen. Ik raad de volgende taken over patronen aan: 1522 , 1530 , 1631 , big01 , 2912 , 3107 ... Verstandig gebruik van ontwerppatronen leidt tot betrouwbaarder codeonderhoud, omdat, naast het feit dat ontwerppatronen goede oplossingen zijn voor veelvoorkomende problemen , kunnen andere ontwikkelaars ze herkennen, waardoor er minder tijd nodig is om met bepaalde code te werken.
Opmerkingen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION