2 svar
179 visningar
TB16 behöver inte mer hjälp
TB16 182 – Fd. Medlem
Postad: 28 jun 2018 14:45

Rita ett klassdiagram som beskriver designmönstret X...

Uppgift:

I ett enkelt hierarkiskt filsystem finns filtyperna textfil och katalog. En katalog kan innehålla noll eller flera filer. Ett känt designmönster som behandlas i kursen beskriver sådana strukturer. I en objektorienterad modell för filsystemet kan man modellera filtyperna med klasserna Fil, Textfil och Katalog. Rita ett klassdiagram som beskriver designmönstret tillämpat på dessa klasser. Diagrammet skall ha mönstrets namn som rubrik. 


Min tankegång:

Hierarkiskt filsystem för tankarna till en form av trädstruktur. Det sägs i uppgiftsbeskrivningen att en katalog kan innehålla noll eller flera filer vilket kan ses som en nod (förälder)? . Filerna blir således löv (barn) till mapparna (föräldrarna) i strukturen. Givna klasser är Fil, TextFil och Katalog. Eftersom Fil är generell i jämförelse med TextFil så blir således TextFil löv och klassen Fil blir den abstrakta klassen (rot-noden) i denna struktur. Designmönstret är Composite.

Fråga 1: Räcker denna motivation för att kunna dra slutsatsen att det efterfrågade designmönstret är Composite? 
Fråga 2: I vissa versioner (klassdiagram) av detta designmönster så finns klassen "Client" men den tycks inte innehålla något. Har inte heller hittat någon implementation av den i de kodexempel som jag hittat av detta designmönster och i facit till denna uppgift så är Client inte ens utritad (se diagram nedan). Behövs den ritas ut? Vad jag förstått så används den för att få access till den abstrakta klassen (i detta fall Fil-klassen). Kan man se Client som någon form av testklass? 

Facit: 

Här är en annan version som jag hittade i en bok där Client finns med:
 

 

Lindehaven 820 – Lärare
Postad: 28 jun 2018 20:05
  1. Om det räcker eller inte kan nog endast den som frågar avgöra. Jag tycker dock det verkar som att du tänkt igenom frågan vilket är bra.
  2. Uppenbarligen behövs ingen Client om man tittar på "facit". I ett verkligt system så finns det förstås alltid användare - mänskliga eller icke-mänskliga - av objekten, men behöver inte ritas i varje diagram. Ja, ett testprogram kan vara klient under utvecklingen.
TB16 182 – Fd. Medlem
Postad: 29 jun 2018 16:22
Lindehaven skrev:
  1. Om det räcker eller inte kan nog endast den som frågar avgöra. Jag tycker dock det verkar som att du tänkt igenom frågan vilket är bra.
  2. Uppenbarligen behövs ingen Client om man tittar på "facit". I ett verkligt system så finns det förstås alltid användare - mänskliga eller icke-mänskliga - av objekten, men behöver inte ritas i varje diagram. Ja, ett testprogram kan vara klient under utvecklingen.

 Okej, stort tack för ditt svar

Svara
Close