ett designmönster ger en allmän återanvändbar lösning för de vanliga problem som uppstår i Programvarudesign. Mönstret visar vanligtvis relationer och interaktioner mellan klasser eller objekt. Tanken är att påskynda utvecklingsprocessen genom att tillhandahålla vältestad, beprövad utveckling / designparadigm. Designmönster är programmeringsspråkoberoende strategier för att lösa ett gemensamt problem. Det betyder att ett designmönster representerar en idé, inte en viss implementering., Genom att använda designmönstren kan du göra din kod mer flexibel, återanvändbar och underhållbar.
det är inte obligatoriskt att alltid implementera designmönster i ditt projekt. Designmönster är inte avsedda för projektutveckling. Designmönster är avsedda för vanlig problemlösning. När det finns behov måste du genomföra ett lämpligt mönster för att undvika sådana problem i framtiden. För att ta reda på vilket mönster som ska användas. Du måste bara försöka förstå designmönstren och deras ändamål. Först då kommer du att kunna välja rätt.,
mål:
förstå syftet och användningen av varje designmönster. Så, du kommer att kunna välja och genomföra rätt mönster efter behov.
exempel:
i många verkliga situationer vill vi till exempel bara skapa en instans av en klass. Till exempel kan det bara finnas en aktiv president i landet i taget oavsett personlig identitet. Detta mönster kallas ett Singletonmönster. Andra programvaruexempel kan vara en enda DB-anslutning som delas av flera objekt, eftersom det blir dyrt att skapa en separat DB-anslutning för varje objekt., På samma sätt kan det finnas en enda konfigurationshanterare eller felhanterare i ett program som hanterar alla problem istället för att skapa flera chefer.
typer av designmönster
det finns främst tre typer av designmönster:
- Creational
dessa designmönster handlar om klass instantiation eller objektskapande. Dessa mönster kan ytterligare kategoriseras i klass-kreationsmönster och objektkreationsmönster., Medan klassskapande mönster använder arv effektivt i instantiationsprocessen, använder objektskapande mönster delegering effektivt för att få jobbet gjort.Kreationella designmönster är Fabriksmetoden, Abstract Factory, Builder, Singleton, Object Pool och prototyp.,
använd fall av creational design pattern –
1) Antag att en utvecklare vill skapa en enkel DBConnection klass för att ansluta till en databas och vill komma åt databasen på flera platser från kod, i allmänhet vad utvecklaren kommer att göra är att skapa en instans av DBConnection klass och använda den för att göra databasoperationer där det behövs. Vilket resulterar i att skapa flera anslutningar från databasen som varje instans av DBConnection klass kommer att ha en separat anslutning till databasen., För att hantera det skapar vi DBConnection-klass som en singleton-klass, så att endast en instans av DBConnection skapas och en enda anslutning upprättas. Eftersom vi kan hantera DB-anslutning via en instans så att vi kan styra lastbalans, onödiga anslutningar etc.2) Antag att du vill skapa flera instanser av liknande slag och vill uppnå lös koppling så kan du gå till Fabriksmönster. En klass som implementerar fabriksdesignmönster fungerar som en bro mellan flera klasser. Betrakta ett exempel på att använda flera databasservrar som SQL Server och Oracle., Om du utvecklar ett program med SQL Server-databas som back end, men i framtiden behöver ändra databas till oracle, måste du ändra all din kod, så som fabriksdesignmönster behålla lös koppling och enkel implementering bör vi gå till fabriken för att uppnå lös koppling och skapande av liknande typ av objekt.
- strukturella
dessa designmönster handlar om att organisera olika klasser och objekt för att bilda större strukturer och ge ny funktionalitet.,strukturella designmönster är Adapter, bro, komposit, dekoratör, Fasad, Flyweight, privata Klassdata och Proxy.
använd fall av konstruktionsmönster –
1) När 2 gränssnitt inte är kompatibla med varandra och vill skapa ett förhållande mellan dem via en adapter kallas det ett adapterdesignmönster. Adaptermönster omvandlar gränssnittet för en klass till ett annat gränssnitt eller en klass som klienten förväntar sig, dvs adaptern låter klasserna arbeta tillsammans som annars inte kunde på grund av inkompatibilitet., så i dessa typer av inkompatibla scenarier kan vi gå till adaptermönstret.
- beteende
beteendemönster handlar om att identifiera gemensamma kommunikationsmönster mellan objekt och förverkliga dessa mönster.,beteendemönster är Ansvarskedja, kommando, tolk, Iterator, medlare, Memento, Null – objekt, observatör, stat, strategi, Mallmetod, besökare
Använd fall av beteendemönster-
1) Mallmönster definierar skelettet av en algoritm i en operation som skjuter upp några steg till underklasser, Mallmetod låter underklasser omdefiniera vissa steg i en algoritm utan att ändra algoritmstrukturen., Till exempel i ditt projekt vill du att modulens beteende ska kunna utvidgas, så att vi kan få modulen att bete sig på nya och olika sätt som kraven i ansökan ändras eller för att möta behoven hos nya applikationer. Ingen får dock göra ändringar i källkoden, det vill säga Du kan lägga till men kan inte ändra strukturen i de scenarierna som en utvecklare kan närma sig malldesignmönstret.