phpbar.de logo

Mailinglisten-Archive

[php] Abstrakte Klasse mit abstrakten/nicht abstrakten Attributen?

[php] Abstrakte Klasse mit abstrakten/nicht abstrakten Attributen?

Andreas Heigl a.heigl at wdv.de
Die Mar 15 17:15:49 CET 2005


Andreas Lange schrieb:


> 
> Welchen konkreten Anwendungfall gibt es denn, wo man man abstract
> statt eines interface nutzen sollte/muss? Ist mein "bequemer"
> Ansatz der Weg (sparen von extends + interface) oder gibt es eine im
> OOP dafür vorgesehene Aufgabe?

Ich bin ja jetzt nicht der spezialist im OOP, aber prinzipiell gibt dir eine
Abstrakte Klasse die Möglichkeit grundlegende Funktionen zur Verfügung zu
stellen, die mehrere Klassen benötigen, ohne dass diese Klasse selbst
instanziert wird. 

Ein Interface dagegen ist eine echte Schnittstelle, die eine Klasse
mitbringen muss. Ich hab ein schönse Beispiel n einem UML-Buch gesehen.

Da wurde eine Party im UML-Stil dargestellt. Der 'Partyteilnehmer' war eine
Abstrakte Klasse, die von den Klassen 'Gast' und 'Gastgeber' geerbt wurde.
Und beide implementierten das Interface 'Esser'.

                                +-----------------------+
                                |   Gastgeber           |--O Esser
                                +-----------------------+
                                | hektisch: true        |
+-----------------------+       +-----------------------+
|   Partyteilnehmer     |  <--  |begrüße ( Gast g )     |
+-----------------------+       |verabschiede (Gast g ) |
| betrunken: false      |       +-----------------------+
| intus: Cocktail [1..*]|
| begeistert: int       |       +-----------------------+
+-----------------------+       |   Gast                |--O Esser
|überdenkeBegeisterung  |  <--  +-----------------------+
| trinke (int Cocktail) |       +-----------------------+
+-----------------------+       | feiere()              |
                                +-----------------------+


+--------------------------------------------+
|   <<Interface>>                            |
|   Esser                                    |
+--------------------------------------------+
| isst ( int Häppchen return boolean satt )  |
+--------------------------------------------+

Klar geworden?

Ich persönlich fand es recht erhellend

Grüße

Andreas
-- 

wdv Medien & Kommunikation GmbH & Co. OHG
Mediendatenverarbeitung
Andreas Heigl
Siemensstrasse 6
61352 Bad Homburg
Germany
Telefon +49-(0)6172-670-185
Telefax +49-(0)6172-670-181
www.wdv.de



php::bar PHP Wiki   -   Listenarchive