een design pattern biedt een algemene herbruikbare oplossing voor de veelvoorkomende problemen die zich voordoen in software design. Het patroon toont meestal relaties en interacties tussen klassen of objecten. Het idee is om het ontwikkelingsproces te versnellen door goed getest, bewezen ontwikkeling/ontwerp paradigma te bieden. Ontwerppatronen zijn programmeertaal onafhankelijke strategieën voor het oplossen van een gemeenschappelijk probleem. Dat betekent dat een ontwerppatroon een idee vertegenwoordigt, geen specifieke implementatie., Door het gebruik van de ontwerppatronen kunt u uw code flexibeler, herbruikbaar en onderhoudbaar maken.
Het is niet verplicht om altijd ontwerppatronen in uw project te implementeren. Ontwerppatronen zijn niet bedoeld voor projectontwikkeling. Ontwerppatronen zijn bedoeld voor gemeenschappelijke probleemoplossing. Wanneer er behoefte is, moet je een geschikt patroon implementeren om dergelijke problemen in de toekomst te voorkomen. Om erachter te komen welk patroon te gebruiken. Je hoeft alleen maar te proberen om de ontwerppatronen en hun doeleinden te begrijpen. Alleen tegen die tijd, zul je in staat zijn om de juiste te kiezen.,
doel:
begrijp het doel en het gebruik van elk ontwerppatroon. Zo, zult u in staat om te kiezen en implementeren van de juiste patroon als dat nodig is.
voorbeeld:
bijvoorbeeld, in veel real-world situaties, willen we slechts één instantie van een klasse maken. Er kan bijvoorbeeld maar één actieve president van het land tegelijk zijn, ongeacht de persoonlijke identiteit. Dit patroon wordt een Singleton patroon genoemd. Andere software voorbeelden kunnen een enkele DB verbinding gedeeld door meerdere objecten als het creëren van een aparte DB verbinding voor elk object zal kostbaar zijn., Op dezelfde manier kan er één configuratiebeheerder of errormanager zijn in een toepassing die alle problemen afhandelt in plaats van meerdere managers aan te maken.
soorten ontwerppatronen
er zijn hoofdzakelijk drie soorten ontwerppatronen:
- Creational
Deze ontwerppatronen gaan allemaal over klassestantiatie of objectcreatie. Deze patronen kunnen verder worden gecategoriseerd in klasse-creatiepatronen en object-creatiepatronen., Terwijl class-creatie patronen gebruiken erfenis effectief in het instantiation proces, object-creatie patronen gebruiken delegatie effectief om de klus te klaren.Creatiepatronen zijn de Factory Method, Abstract Factory, Builder, Singleton, Object Pool en Prototype.,
Use case of creational design pattern –
1) Stel dat een ontwikkelaar een eenvoudige dbconnection class wil maken om verbinding te maken met een database en de database op meerdere locaties wil benaderen vanuit code, Wat ontwikkelaar in het algemeen zal doen is een instantie van DBConnection class maken en deze gebruiken voor databasebewerkingen waar nodig. Wat resulteert in het creëren van meerdere verbindingen vanuit de database als elke instantie van dbconnection klasse zal een aparte verbinding met de database hebben., Om ermee om te gaan, maken we DBConnection class als een singleton class, zodat er slechts één instantie van DBConnection wordt gemaakt en er één enkele verbinding tot stand wordt gebracht. Omdat we DB-verbinding via één instantie kunnen beheren, zodat we load balance, onnodige verbindingen, enz. kunnen controleren.2) Stel dat u meerdere instanties van vergelijkbare soort wilt maken en losse koppeling wilt bereiken dan kunt u gaan voor Factory pattern. Een klasse implementeren fabriek ontwerp patroon werkt als een brug tussen meerdere klassen. Overweeg een voorbeeld van het gebruik van meerdere databaseservers zoals SQL Server en Oracle., Als u het ontwikkelen van een applicatie met behulp van SQL Server-database als back-end, maar in de toekomst nodig hebben om de database te veranderen in oracle, moet u al uw code te wijzigen, zodat fabriek ontwerp patronen handhaven losse koppeling en eenvoudige implementatie moeten we gaan voor de fabriek voor het bereiken van losse koppeling en creatie van soortgelijke soort object.
- Structural
Deze ontwerppatronen gaan over het organiseren van verschillende klassen en objecten om grotere structuren te vormen en nieuwe functionaliteit te bieden.,structurele ontwerppatronen zijn Adapter, brug, composiet, decorateur, gevel, vlieggewicht, Privéklasse gegevens en Proxy.
Use Case of Structural Design Pattern –
1) wanneer 2 interfaces niet compatibel zijn met elkaar en een relatie tussen hen willen opbouwen via een adapter, wordt dit een adapter design pattern genoemd. Adapter patroon zet de interface van een klasse in een andere interface of klasse die de client verwacht, dat wil zeggen adapter laat klassen werken die anders niet kon als gevolg van incompatibiliteit., in dit soort incompatibele scenario ‘ s kunnen we kiezen voor het adapterpatroon.gedragspatronen gaan over het identificeren van gemeenschappelijke communicatiepatronen tussen objecten en het realiseren van deze patronen.,
gedragspatronen zijn Chain of responsibility, Command, Interpreter, Iterator, Mediator, Memento, Null Object, Observer, State, Strategy, Template method, Visitor
Use Case of Behavioral Design Pattern-
1) Template pattern definieert het skelet van een algoritme in een operatie waarbij sommige stappen worden uitgesteld tot subklassen, Template method laat subklassen bepaalde stappen van een algoritme herdefiniëren zonder de algoritmestructuur te veranderen., In je project wil je bijvoorbeeld dat het gedrag van de module zich kan uitbreiden, zodat we de module op nieuwe en verschillende manieren kunnen laten gedragen als de vereisten van de toepassing veranderen, of om te voldoen aan de behoeften van nieuwe toepassingen. Echter, niemand is toegestaan om de broncode wijzigingen aan te brengen, dat wil zeggen U kunt toevoegen, maar kan de structuur niet wijzigen in die scenario ‘ s een ontwikkelaar kan benaderen sjabloon ontwerp patroon.