Factory Pattern

huhu kann mir bitte jemand das factory pattern erklären. ich hab mir jetzt schon einige sachen durchgelesen, aber ich versteh das ned wirklich. wär echt ganz lieb

lg kathi

Hallo!

huhu kann mir bitte jemand das factory pattern erklären. ich
hab mir jetzt schon einige sachen durchgelesen, aber ich
versteh das ned wirklich. wär echt ganz lieb

Die Vorteile der Verwendung eines bestimmten Patterns versteht man oft erst, wenn man es sich in der Implementierung anschaut. Also, eine Factory Klasse enthält in der Regel statische create() Methoden, die zur Erzeugung von Objekten dienen. Dadurch daß Objekte ausschließlich in der Factory und nicht an beliebigen Stellen im Code erzeugt werden, wird Deine Anwendung flexibler und Du kannst es später leichter erweitern und Änderungen vornehmen. Versuch das bei Deinen nächsten Programmierprojekten mal selbst zu implementieren, dann wird der Sinn auch klarer.

Grüße, Tanja

huhu kann mir bitte jemand das factory pattern erklären. ich
hab mir jetzt schon einige sachen durchgelesen, aber ich
versteh das ned wirklich. wär echt ganz lieb

Ich will’s anhand eines Beispiels versuchen.

Nehmen wir an, du willst eine grafische Benutzeroberfläche erstellen. Beschränken wir uns dabei auf das Erzeugen von Schaltflächen.
Du benutzt eine GUI-Bibliothek, die dich unheimlich genau spezifizieren lässt, wie so ein Button aussehen soll. Da gibts also Parameter wie Farbe, Form, Größe, Position im Fenster und natürlich den Beschriftungstext.
Was du brauchst, sei nun lediglich ein OK-Button rechts unten im Fenster, und das oft, weil du viele Fenster hast. Da kann es Sinn machen, eine Fabrik für Buttons zu bauen, also z.B. eine Klasse namens „ButtonFactory“ die eine Methode „createOkButton()“ bereitstellt, welche nichts anderes macht als Buttons zu erzeugen, die rechts unten im Fenster plaziert werden und mit „OK“ beschriftet sind. All die möglichen Parameter wie Form, Farbe, Größe etc. belegt diese Methode mit sinnvollen Standardwerten.
Naja, vielleicht brauchen deine Fenster auch noch „Abbruch“-Buttons, also sehen wir in der ButtonFactory außerdem eine Methode namens „createCancelButton()“ vor, die fast das gleiche macht wie die andere Methode mit dem Unterschied, dass sie die Buttons mit „Abbruch“ beschriftet und links unten im Fenster plaziert.

Falls dir nun irgendwann einfällt, dass du die Buttons lieber im oberen statt unteren Fensterbereich hättest, dann musst du den Quellcode nur an einer Stelle ändern, nämlich in der Factory-Klasse. Und vielleicht willst du auch mal eine Version deiner Benutzeroberfläche anbieten, die für Leute mit Sehbehinderung optimiert ist, da lohnt sich dann vielleicht eine „BigButtonFactory“, die von der „ButtonFactory“ abgeleitet ist und nur einen höheren Standardwert für die Buttongröße vorsieht…

Hoffe geholfen zu haben.

Servus
Tom

ok das hab ich jetzt so halbwegs verstanden, aber wie zeichne ich sowas? und funktioniert das observer pattern ähnlich?

ok das hab ich jetzt so halbwegs verstanden, aber wie zeichne ich sowas?

etwa so wie hier:
http://www.dofactory.com/Patterns/PatternFactory.asp…

und funktioniert das observer pattern ähnlich?

Nein, das Observer Pattern erfüllt einen völlig anderen Zweck. Die Fragestellung, die man damit angeht ist dynamischer Natur, wirkt sich also auf den Ablauf eines Programms aus. Das Factory Pattern hat dagegen in erster Linie damit zu tun, wie der Quellcode eines Programms organisiert wird.

Das Observer Pattern hat mit ereignisbasierter Programmierung zu tun, Stichworte „Event“, „Listener“, „Event Handler“. Hast du damit Erfahrung?

Servus
Tom

Hallo,
ich würde weitergehen und sagen den Vorteil versteht man erst, wenn man es zunächst „ohne“ gemacht hat und nachfolgend ändern muß *g*. Ich weiß nicht wieviel Programmiererfahrung Kathrin hat aber IMO ist es äußerst schwierig jmd. mit wenig Programmiererfahrung den Sinn von Patterns zu vermitteln.

Gruss
Enno

huhu kann mir bitte jemand das factory pattern erklären. ich
hab mir jetzt schon einige sachen durchgelesen, aber ich
versteh das ned wirklich. wär echt ganz lieb

lg kathi

Hallo,

das beste Buch über Patterns ist: „Design Patterns“ von Gamma, Helm, Johnson, Vlissides. Ein echtes Standardwerk, das praktisch alle wichtigen Design Patterns enthält und erklärt. Das Buch gibts auch in deutscher Übersetzung (Entwurfsmuster). Lohnt sich wirklich da mal reinzuschauen. Und es sollte auch in einer schlecht sortierten Uni-Bibliothek zu finden sein.

Gruß

Peter