14. oktober 2002 - 11:08Der er
5 kommentarer og 1 løsning
Generalisering af interfaces -design
Jeg er igang med at lave et subsystem, som indeholder 2 klasser, og begge klasser skal tilgås gennem et fælles interface, som tilhører subsystemet.
Problemet er at klasserne tilsyneladende SKAL have implementeret alle metoder i interfacet, selv om de ikke tilbyder disse.
Hvad er designmæssigt pænt/muligt? -At lave en ny klasse som implementerer interfacet, og kalder/opretter klasserne som implementerer metoderne? -At lave et interface til hver klasse, som arver fra et fælles generelt interface (og er dette muligt)?
Et svar omkring muligheden for generalisering af interfaces, med kodeeksempel er rigeligt.
En klasse som "implements" et interface skal per definition have implementeret alle metoderne i interfacet - det er ideen i konstruktionen.
Et interface kan godt "extends" et andet interface.
Du kan også erstatte interfacet med en abstract basis-klasse, som har implementationer for nogle af metoderne, så de klasser der arver fra den kun behøver implementere det specifikke for dem.
Du kan også lave et interface, en abstrakt basis-klasse som implementer interfacet og leverer implementeringer af nogle metoder, klasser som arver fra den abstrakte basis-klasse og implementerer de specifikke metoder.
Der er uendeligt mange måder at gøre det på. For at kunne rådgive dig bedst muligt må vi have lidt flere oplsyninger om præcis hvad det er du har brug for.
I det tilfælde ville jeg nok lave: - et interface med alle metoder fra begge klasser - en klasse som implementerer dette interface og delegerer til de to klasser
Synes godt om
Ny brugerNybegynder
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.