[Playlisten] [Impressum und Datenschutzerklärung]

08.3 Das Composite-Pattern


CC-BY-NC-SA 3.0

Tempo:

Anklickbares Transkript:

dasnächste betteln was ich zeigen will es Kompositverbundstoffwäre das auf Deutschgroßverbunden ist der Verbandder Verbundandas kennen sie aus Zeichenprogrammich ergänze einfach malOpenOfficePress aufgemachtPunkt wirkteer zum Beispiel den kann ich für sichverschieben den kann ich für sichdrehendenMöpsefür sich verschiebenfür sich drehendendie Freihandliniefür sich verschieben und so weiterdie können die aber auch zusammenfassendzu einer Gruppezusammenfassenseiner Gruppe unter ?? die insgesamtauf einen Schlag das Feld sich insgesamtwie ein einzelneskann die insgesamt verschiedentlichkann sie insgesamtdrehen die Gruppe verhält sichwie die Einzelelementedas ganz typische Funktioner in Zeichenprogrammdas ich kopierenkannBeistrich da Leerzeichen Programme entwickelndanndenken Sie an virtuelle Kraftwerke sie könnenbildendiverse Kraftwerke zusammen bindenin ein Kompositumein virtuelles Kraftwerk und das soll sich wieder verhaltenwie ein Kraftwerk ?? dummes Beispielaus den regenerativen Energiendass man ähnliche Persuasion da braucht dass sich eineals Verbundso verhalten sollwie ein einzelnes Dingdas Pattern dafür nennt sichentsprechend KompositverbundverbandAnlagenfür den Nummerdrei in dentexanischen Nummer drei mal erstmals auf Nummer zwei derProgrammcode kommt hier Nummer drei Schmerzenauf das Abstract aussieht für die Nummerzweilogisch soll das so sein es gibtso einen Verbundein Kompositunddieser Verbund enthältEinzelteiledie heißen danach liefgleich klar warum die Lief heißen Blattder Verbund kann aber auchwieder ein Verbund enthaltendas es erlaubt bestellewenn ich Sachen zusammen fasse das auch zusammengefassteSachen noch mal zusammenfasseund da können vielleicht auch wiederweitere Einzelteile drin sein?? zwei Ziffer wieder ein Komposit aberwitzig übertreibendas wäre nach ?? logische Struktur dahinterdrei Sachen probiert zu einem Kompositund dieses Komposit kopiert mit zwei weiteren Sachenzu einem weiterenKompositauch sofort dieSprachregelungihr Komposit der Verbund dabei mehrere Sachen drin hängenandie Einzelteileheißen Liebs weil das ja aussieht wie ein Baum sicher letztes Semester innen ein Baum in der Informatikoder ein Baum in der Graphentheorieander Seite immer gerne falsch rum hauste wächst immer gerne mit der Wurzelvon obennach untenüber die Wurzelund die letzten hier die keine weiteren Verzweigungen haben dass man die Blätterwaren blau Punkthier hängen dieBlätter an den letzten Verzweigungendes Passes hier die Einzelteile heißen deshalb ließ weil es da keine weiterenVerzweigung gibt's daher die Bezeichnungdas ist eineversucht diese logische Struktur darzustellen das ist keinVererbungsdiagrammVorsichtkeinenVereineein Klassendiagramm Beistrich kein Vererbungsdiagrammverglichen kein Vererbungsdiagrammnicht durch enorme MengenPunktwir habenes nichtlief von Komposit das nicht gemeintist gibt zur Art KindMutterverhältnisauf andere Weise nicht bei der Vererbung hier dass sie gezielt um Vererbung sondern vielmehr enthält ein Kompositeine Sammlung von Tiefsund Mandeln noch eine Sammlung von Komposit und dieses Komposit kann wiederweitere Leads oder sogar weitere Kompositenthaltenkein Vererbungsdiagrammdie Vererbung selbsthatte Nummer zweidie Vererbung selbst sieht etwas anders ausals Klassendiagrammaufgemaltdass sie deutlich einfacher ausich habe das LiefEinzelteil zum Beispiel in OpenOfficeEllipse oderein RechteckWasser manchen Einzelteilen habe mag ??typischerweise diverse Sorten von Tiefsund dann habe icheinKompositeineZusammensetzungund beides dass er von componentsbesser besetzten austauschbarenKomponentebeides ist eine Komponentebeides ist eine KomponentePunktderPräsident des Klassendiagrammsoll sich hierVorsicht das ist die logische Strukturwer jetzt bin enthältdass es die KlassenstrukturmöchteKomponentenhabendie austauschbarEinzelteilesindoder Zusammensetzungensindund diese Zusammensetzungenkönnen dann wieder Sachen von derselben Sorte enthalten das ist der Trick diese Kompositionwieder Sachen von derselben Sorte enthalten die dies sindatomare Einzelteilegemäß in diesem Klassendiagramm noch weiter für das finde ich ?? bisschenhart für den Anfangich hoffe das es klarer wenn ich schreibein Programmcodewie das gemeint istalsodas wird jetzt Nummer dreiich möchte das die Einzelteileund die Lesegruppenein gemeinsamer Mutterklasse haben KomponenteBeistrichalso muss ich schreiben??Class componentsPunktund diese Mutterklasse soll die üblichen Funktionen haben zum Beispiel zum verschieben zum drehen wenn sie Zeichenobjektegeht es um virtuelle Kraftwerke geht werden wahrscheinlich irgendwelcheEnergiekontingentebuchen Hersteller aberdamit leichter zu verstehen ist das ich es ?? das bei der Idee der Zeichenfunktion?? hat sowas wieablegeerfreutbewege einfach das jeweilige Teildouble XY weiter mit Reputationsfunktion?? Funktion die Farbe zu ändern und so weiter und so weiter stimmte alles drin schreibe ich als nicht reinalle gemeinsam Funktion alles was die Einzelteilekönnenes jedes Einzelteil kann oder was auch diese Zusammensetzungkönnten beide Erben von Hongkongam?? was will ich sinnvollerweisemit dieser Klasse Komponenten machenAstra Klammer zuder sollte unbedingt abstrakt sein das ich niemalsSelbstzweck dass ich niemals einen Tanz bauen kann denn danndas was ich im wahren Leben habe sind entweder die Einzelteileoder die Gruppen aber diese abstrakte Geschichte kommt ohne die gibt es ja nicht wirklichinsofern wäre sinnvollzu sagen dieser abstrakt seinsoll nicht wirklich eine Instanz davon gebaut werden können wieder depressivwenn man das versuchtdann wenn es abstraktes ist das schöne möchte sie einfach abstrakt und sageokay die Kindklassen soll sich drum kümmernwie denn diese Bewegung und das Drehen und das Einfärben was auch immerstattzufinden??das istdie Mutterklasse sind das ja gewaltig eine ZeileanPunkt jetzt könnte man wenn man bei den ?? bei der Analogie von Leerzeichen Funktion bleibt und man sang sie möchten Einzelteil haben zum Beispiel einen Weg das ?? Beistrichliefer nicht möchte einevon zu ??eine Klasse haben die rechtecksrechtlichedarstellt dies natürlich dann abgeleitetvon KomponentenSinn der Geschichteundmüsstediese abstrakte Methode implementierenbereitssieso sehr das ausLeerschritte setzenodernehme sie mit der herausdazu Kommada müsste jetztirgendwas nennenswertes passieren genauso würde ich ableiten eine Ellipse und Text und Freihandlinieund so weiterdas wären alles die Liebsdie Einzelteile??und jetzt kommt die zweite Ableitung die zweite große andere Ableitungsbildangucken das wäre das Komposit dieserzur Richter der Verbundleitungobendreinnicht ?? sondern Klassich leite obendreindiesen VerbundVorsitzebenfalls von componentsdannder soll natürlich auchdann diese Bewegungsfunktionhaben Drehfunktioneneinschlafen zu lassen Komma hatalso auch die überschreibenaber es kommt noch was hinzu das wesentlichean diesemKomposit istdas eine Sammlungenthalten musswie kann ich das jetzt formulierenalsodas Kompositseine Gruppe soll wissen wir dabei ist und das ist wirklichzwei Minutensehen Sie das müsse dann ganz blöd einfach eine Liste von componentsseindieser Fraueneinfachganz soweit ?? sofort daist ebensoerzeugt wird so sehr das ausdieses Kompositumdie Gruppierungder Verbundhat nicht nur die üblichen Funktionensondern es merkt sich auch ?? enthalten ist wer kann enthalten sein alles mögliche Component ist ja die Mutterklassefürdie Mutterklasse für die Einzelteilewie für Gruppen wenn sie sagenKompositmerkt sich eine Liste an componentskann in der Liste sowiesoder beste sowohlEinzelteile auftauchenEinzelteile auftauchenwie auch Zusammensetzungenbin ich mir eines von components merkensich wie das plötzlich mit derPolymorphie zusammendiese Liste hier kann kreuz und queralles mögliche enthaltenund dann wird man typischerweiseauch solche Funktionen habendas man neue Elemente eine was dann zu dem was sie allerdings mit mit der Maus auswählen und so weiterführenwird man feststellen werden dazu gehörtund im Endeffekt würde dann so eine Funktion aufgerufen werden die DoppelkreuzAdsfüge ein neueseine neue Komponentebastelt ein Einzelteil sein kannoderseine ZusammensetzungkommtPunkt schwierigstefüge eine neue Komponente hinzu die Methode würde dann aufgerufenjetzt auch Methode und eine Komponente wieder raus zu holenund dernimmt einfach componentsund hängtcomponentsund hängt hinten an diese Listedie neu übergebeneKomponente das als Beispiel was man letzterendurchbricht man X andere Funktionendaskorrekt zu machenalso normal im Überblickhabendie Frage ist wie kann man sowas realisierenEinzelteileEinzelteileverhalten sicham StandesverhaltendrehendenFarbe einstellenverschiebenund eine Gruppevon Einzelteilen soll dies selbe Verhalten haben eine Gruppe sollfür ein Einzelteil stehen könnenda sonst keinen gravierenden Unterschied geben zwischen Einzelteilenund Gruppendie Lösung dafür ist dieses Kompositpatternsind die abstrakt diese Lösung dann einfach ist das sind jetzt drei Klassendie passen zusammen spielenund der Job fürden Entwickler ist dann das wirklich hinzukriegenwie baue ich jetzt die Details zusammen und Mitreisendenim allgemeinenrelativ einfach wenn man mal die Idee getätigt hat auch an dieser Stelle brauche ich dieses Patternhabenfür die Lücken ein und ist mehr oder minder fertigund bedanke damitdie Einzelteile sich verhalten könnendie Gruppen oder besser die Gruppen sich verhalten wie die Einzelteilebeide Erben von einer gemeinsamenMutterklasseund alles was sie gemeinsam können ist in dieserMutterklasse drin ja jetzt eine Methodekann sie verschiebenandas jetzt zum Beispiel für ein Blatteinzelteiles implementiert den ihm die entsprechenden Methoden und fertigdie Gruppe der Verbund hier Kompositist eine Nummer komplizierter er muss auch die entsprechendenMethoden implementierendas alles sehr bekannt wie dieEinzelteileaber obendrein muss man merkte sich merken was denn seine Einzelteilesind dieses Ding ist ja eine Sammlung von Einzelteilendes Teams wird es mit einer Liste zu machen und dann auch natürlich noch Extramethodendie diese Liste verwalten wer soll jetzt dazu besser wieder rausBeistrich noch Fragen insgesamt drin sindund so weiter das ist das Kompositwettermit sich Fragen kommt das deutlich häufiger vor als das Singenaber ich hoffe Sie verstehen doch selten angefangen habeähmdas ist ?? auf ein Bildchen sehen eine Klasse das hier sind mindestensdrei Klassenund passt definitiv nicht mehr auf eindass es ihr also das übliche Kaliber vonEdwardses kommt ?? das so zwei drei Klassen zusammen spielen und dann auch jeweils zwei drei Methodendarin rumfliegen um einrelativ allgemeingegebenes Problemund übliches Problemzu lösen?? auf bewährte Weise zu benutzen das hier ist das Wasser typischerweise im Hintergrund läuft sie ?? Leerzeichen Programm habenoder irgend eine andere Software in der Einzelteileund Gruppendasselbe können solles mal erkläre ich dann StageModel-View-Controller