Verletzung der Regel Komposition der Vererbung vorziehen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/verletzung_der_regel_komposition_der_vererbung_vor_153280/page_1 - zur Vollversion wechseln!


fresserettich schrieb am 23.11.2005 um 21:05

"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 schrieb am 24.11.2005 um 11:04

Ist zum glück überhaupt nicht aus dem Zusammenhang gerissen... Könnte auch aus einem Vortrag eines Gentechnikers stammen.


ica schrieb am 24.11.2005 um 11:37

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 schrieb am 24.11.2005 um 15:44

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 schrieb am 24.11.2005 um 16:00

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 schrieb am 24.11.2005 um 16:16

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 schrieb am 24.11.2005 um 18:21

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 schrieb am 24.11.2005 um 18:30

mir ist eigentlich schon der begriff komposition fremd wenn mir wer das mal erklären könnte würde es mir schon weiterhelfen


daisho schrieb am 24.11.2005 um 18:33

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 schrieb am 24.11.2005 um 19:37

Komposition ist wennst ein Flugzeug zusammensetzt aus Triebwerk, Flügel, Cockpit, etc...

Vererbung ist wennst es ableitest von einem Vogel :D


mat schrieb am 24.11.2005 um 20:17

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 schrieb am 27.11.2005 um 23:09

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 schrieb am 27.11.2005 um 23:17

in Java:

Komposition:

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

Vererbung:

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


ica schrieb am 28.11.2005 um 01:10

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 :)




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025