Avatar billede dje1000 Nybegynder
27. november 2004 - 15:22 Der er 6 kommentarer og
1 løsning

Vudering af UML klasse løsning på problem

Hejsa
Jeg har et program der skal tage hånd om nogle VARER. Disse varer er enten

RÅVARER
eller
SAMLINGSVARER.

En SAMLINGSVARE består af flere RÅVARER sat sammen.
(Eks. en samlingsvare (drink) hvor der skal bruges flere råvarer for at skabe denne drink.)

Mit spg. er så som følger:

1) skal jeg bare have 2 klasser RÅVARE & SAMLINGSVARE

2) Eller oprette en arvsstruktur, bestående af en abstrakt superklasse VARE & subklasserne RÅVARE & SAMLINGSVARE evt. en agregering fra SAMLINGSVARE mod RÅVARE.

Nr. 1 er den jeg har nu, men kan godt se nogle fordele ved løsning nr. 2, er dog aligevel ikke helt tryk ved nr. 2 da som jeg har forstået skal det enten være en RÅVARE eller en SAMLINGSVARE, og her er problemet som jeg ser det,at en råvare kan komme til at stå både det ene og det andet sted.

Hvad syntes i? Svar må meget gerne begrundes.
Avatar billede arne_v Ekspert
27. november 2004 - 15:34 #1
Jeg mener absolut at du skal vælge #2.

Og #2 svarer vel til GoF pattern Composite !?
Avatar billede arne_v Ekspert
27. november 2004 - 15:35 #2
Begrundelse ?

Tja - RÅVARE og SAMLINGSVARE må jo have noget til fælles.
Avatar billede dje1000 Nybegynder
27. november 2004 - 15:48 #3
Så der burde ikke være noget problem i at en SAMLINGSVARE kan komme til at indeholde noget som også er i RÅVARE i avsstrukturen?

Er ikke bekendt med "GoF pattern Composite" kan du evt uddybe den lidt hvis det ikke kræver for lang en historie :o)
Avatar billede dje1000 Nybegynder
27. november 2004 - 16:01 #5
Takker for hjælpen
Avatar billede arne_v Ekspert
27. november 2004 - 16:01 #6
98% af eksemplerne på Composite pattern er komponenter (og 95% er nok GUI
komponenter), men jeg tror altså også at din problem stilling kan bruge
mønstret.
Avatar billede arne_v Ekspert
27. november 2004 - 16:01 #7
Jeg vil så ligge et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB