"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Verletzung der Regel Komposition der Vererbung vorziehen

fresserettich 23.11.2005 - 21:05 2710 13
Posts

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5321
"Verletzung der Regel Komposition der Vererbung vorziehen" wer kann mir diesen Satz erklären?
habs beim stöbern gefunden und werde nicht ganz schlau drauß :(

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Ist zum glück überhaupt nicht aus dem Zusammenhang gerissen... Könnte auch aus einem Vortrag eines Gentechnikers stammen.

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9802
nur der satz sagt nicht gerade viel, kann nur vermutungen anstellen.

vererbungen solltest sowieso wenn möglich vermeiden, und in diesem speziellen fall sollst du es eben über kompositionen lösen...was jetzt mit "verletzung der regel" gemeint ist weiss ich auch nicht ganz. evtl. das du die komposition etwas abschwächst in richtung aggregation? :confused:

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
In welchem Zusammenhang soll man Vererbungen vermeiden? Vom OOP-Standpunkt ists sogar [w|r]ichtig Vererbungen zu haben (richtige) und diese mit Untertypenbeziehungen auszunutzen.

UML-Mässig muss ich jetzt noch mal überlegen wo das zutrifft...

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5321
ok es geht um design patterns genau gesagt um abstract factory habe das ganze in einem pdf gefunden
http://www.devgroup-stuttgart.de/Do...wurfsmuster.pdf
einfach bei abstract factory nachschauen

Frys_Assassin

information keeper
Avatar
Registered: Oct 2001
Location: New New York
Posts: 2503
Ich interpretier es so dass es wichtiger is die Eigenschaften des abstrakten Produkts zu vererben als eine Teil-Ganzes Hierarchie zu behalten. Diese Beziehung geht dadurch verloren dass eine Fabrik alle erzeugbaren Produkte kennen muss und es keine Übergruppen gibt (Da alle Produkte vom gleichen AbstraktenProdukt abgeleitet sind). Is zwar sehr wischiwaschi, aber die Folien sind auch nicht wirklich sehr gut.

gerhardtt

Big d00d
Registered: Aug 2000
Location:
Posts: 333
also der satz steht als leitmotiv in "design patterns" von gamma etc...

les das buch wennstas wirklich verstehen willst: (kurzfassung: bei einer ziemlich gleichwertigen entscheidung zwischen komposition und vererbung, komposition vorziehen)

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5321
mir ist eigentlich schon der begriff komposition fremd wenn mir wer das mal erklären könnte würde es mir schon weiterhelfen

daisho

SHODAN
Avatar
Registered: Nov 2002
Location: 4C4
Posts: 19603
Also für mich bedeutet der Satz einfach:

Wenn Komposition und Vererbung ziemlich gleichwertig sind, dann sollte man Komposition eher in Erwägung ziehen.


Habe aber keine Ahnung was mit Komposition gemeint ist.

madp

Big d00d
Registered: Mar 2005
Location: vienna
Posts: 161
Komposition ist wennst ein Flugzeug zusammensetzt aus Triebwerk, Flügel, Cockpit, etc...

Vererbung ist wennst es ableitest von einem Vogel :D

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25381
Zitat von gerhardtt
also der satz steht als leitmotiv in "design patterns" von gamma etc...

les das buch wennstas wirklich verstehen willst: (kurzfassung: bei einer ziemlich gleichwertigen entscheidung zwischen komposition und vererbung, komposition vorziehen)
ack, das buch sollte man lesen!

leider ist die entscheidung nicht so einfach, wie deine kurzfassung es vorgibt. hier geht es um:

- intuitives design (objekte lassen sich natürlichen gegebenheiten nachempfinden.. siehe flugzeugbeispiel oben)
- wartbarkeit und erweiterbarkeit
- granularität ("d0n't go cr4zy with classes!")
- darüberliegende patterns (viele kann man verbinden, manche nur mit abwandlungen)
- API, framework, library und deren funktionstransparenz
usw.

im großen und ganzen muss man sich sowieso nur als programmierer damit abfinden ;)
ich bin meist anfangs mit meinen eigenen entscheidungen unglücklich und find sie schlussendlich in der praxis eigentlich ganz gut :p

btw: der satz kommt mir spanisch vor.. fehlen da vl satzzeichen?

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5321
ich mach ja auch ein referat für programmierer also ist es für mich wichtig :D
den satz hab ich aus der präsentation die ich oben schon gepostet habe
so richtig auskennen tu ich mich jetzt noch immer nicht

ich schreib jetzt mal wie ich es interpretiert hätte:
also ich sollte eher was vererben als was neues schreiben ich kann nur mit dem begriff komposition nichts anfangen am ehesten kann ich mir das so vorstllen:
wenn man es von der musik her nimmt dann ist damit erzeugen gemeint?! richtig so?
werde morgen noch ein beispiel posten vielleicht kommen wir dann auf einen gemeinsamen nenner

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11326
in Java:

Komposition:

class A {...}
class B {private A a; ...}

Vererbung:

class A {...}
class B extends A {...}

ica

hmm
Avatar
Registered: Jul 2002
Location: Graz
Posts: 9802
Zitat von watchout
In welchem Zusammenhang soll man Vererbungen vermeiden? Vom OOP-Standpunkt ists sogar [w|r]ichtig Vererbungen zu haben (richtige) und diese mit Untertypenbeziehungen auszunutzen.

war so gemeint, dass du eine komposition oder aggregation vorziehen solltest. natürlich kommst nicht ohne aus :)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz