sammansatt designmönster är ett designmönster som faller i kategorin strukturella mönster. Sådana mönster handlar om hur klasser och objekt är sammansatta för att bilda större strukturer. Sammansatt mönster beskriver ett sådant sätt att bygga en klasshierarki som består av klasser för två olika typer av objekt (komposit och primitiv). Ett mål med mjukvaruutveckling är att upprätthålla hög sammanhållning mellan moduler och den andra för att minska kopplingen.
många applikationer som måste hantera hierarkiska data måste se till att de inte har för mycket beroende bland sina klasser eftersom sådana applikationer ständigt behöver uppdatera sina komponenter. Ett filsystem är ett klassiskt exempel på hierarkisk struktur som innehåller mappar i mappar och filer i mappar. En fil kan vara en video, textdokument, ljudfil. Så det kan finnas flera ljudfiler i en mapp och flera videofiler i andra och båda dessa kan vara inuti en annan mapp som representerar ”media” som själv kan vara i en annan mapp som heter ”föreläsningar”. Föreläsningsmappen kan också innehålla en annan mapp som representerar ämne, och detta kan fortsätta för alltid. Poängen vi försöker göra är att om du försöker utforma en sådan applikation som handlar om hierarkiska komponenter, kan du sluta skapa klassstrukturer som är mycket kopplade och för att lägga till fler komponenter kan mycket redundans uppstå. För att lösa detta vanliga problem ger kompositdesignmönster en elegant lösning. Låt oss först och främst se vad som är kompositdesignmönster? (Java Development Company)
sammansatt designmönster ger en designhierarki, där noder med barn skiljer sig från noder utan barn. Du kan tänka på träddatastrukturen i det här fallet. Och jämfört med vårt exempel kan en nod vara en mapp, och barn kan vara filer eller mappar som består av filer. En grupp objekt behandlas på samma sätt som en enda instans av samma typ av det objektet, så oavsett vad vi kommer att tänka på noden och dess barn som mappkomponenten, gör det det lättare för oss att utforma vår hierarkiska struktur av komponenter för vår applikation. Vi kommer att hänvisa till komponenter (objekt) inom komponenter (objekt) som kompositioner. Det sammansatta designmönstret låter klienten behandla enskilda objekt och kompositioner enhetligt. Kärnan att tänka på är trädstrukturen, samtidigt som man hanterar detta designmönster. För att förstå vad som är sammansatt designmönster och dess användbarhet bättre, låt oss använda ett kodexempel i java som liknar filsystemexemplet vi gav.
Läs: ”allt du behöver veta om Mallmetod designmönster”
sammansatt designmönster exempel
exemplet vi ska använda kommer att vara av en kurs som består av ämnen och föreläsningar. Om du tar en kurs om något ämne kommer det att finnas ett ämne och det ämnet kan bestå av många ämnen och föreläsningar. Så, hur skulle det genomföras? Vi kommer först att visa dig det gemensamma tillvägagångssättet.
Låt oss skapa en Föreläsningsklass
Fig: exempel på kompositdesignmönster i Java — lecture class
föreläsningen har ett namn och en visningsmetod för att visa hierarkin för den.
ämnesklassen
fig: exempel på kompositdesignmönster i Java — ämnesklass
i vårt exempel har ämnesklassen funktionerna att lägga till ett ämne, lägga till en föreläsning och visa föreläsningar och ämnen i en hierarki. Ämne binder andra ämnen och föreläsningar inom sig. Så vi kan ha delämnen och föreläsningar om var och en.
Låt oss se hur vi kombinerar dessa i huvudmetoden
hela artikeln: https://www.decipherzone.com/blog-detail/when-use-composite-design-pattern-java