Builder Pattern implementieren

Jasmin589

Mitglied
Hallo ich habe noch eine Frage dazu wie ich das Builder Pattern implementieren soll.

Das UML Diagramm dazu ist im Anhang.

Ich habe nun folgenden Code geschrieben:

public class Builder implements Director {

public buildPart () {}
}

Public Interface Director {

Public ConstructObjects () {}

Public class concreteBuilder 1 extends Builder {

public buildPart() {}

public concreteBuilder1 getResult Product () { }

Public class concreteBuilder2 extends Builder {

public buildPart() {}

public concreteBuilder2 getResult Product () { }

Hab ich da jetzt Fehler drin?
 

Anhänge

  • Builder.png
    Builder.png
    98 KB · Aufrufe: 32

Hutzli

Aktives Mitglied
Hey

Also der Builder implementiert den Director nicht. Das ist eine Aggregation, was bedeutet, dass nach deinem UML der Builder ein Teil des Directors ist, aber selbst auch ausserhalb des Directors existieren kann. Lies diesen Beitrag durch: http://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/

Bei sämtlichen Methoden fehlen weiterhin die Rückgabewert, und public ist ein Schlüsselwort und wird immer klein geschrieben.

Ich habe mich beim folgenden Beispiel nicht zu 100% an dein UML gehalten, das, was ich hier schreibe, macht für
mich am meisten Sinn.

Code:
// Director
public class Director
{
   private Builder mBuilder1;
   private Builder mBuilder2;

   public Director()
   {
      mBuilder1 = new ConcreteBuilder1();
      mBuilder2 = new ConcreteBuilder2();
   }

   public Product constructObjects1()
   {
      mBuilder1.buildPart();
      return mBuilder1.getResult();
   }

   public Product constructObjects2()
   {
      mBuilder2.buildPart();
      return mBuilder2.getResult();
   }
}

// Builder
public abstract class Builder
{
      private Product mProduct;

      public abstract void buildPart();

      // Ich wuerde hier getResult implementieren,
      // ansonsten muesste man im Director casten.
      public Product getResult()
      {
         return mProduct;
      }

      // Uebergabe des Products
      protected void setProduct( Product pProduct )
      {
         this.mProduct = pProduct;
      }
}

// Concrete Builder 1
public class ConcreteBuilder1 extends Builder
{
   @Override
   public void buildPart()
   {
      Product lProd = new Product();
      // Kreiere Product

      super.setProduct( lProd );
   }
}

// Concrete Builder 2
public class ConcreteBuilder2 extends Builder
{
   @Override
   public void buildPart()
   {
      Product lProd = new Product();
      // Kreiere Product

      super.setProduct( lProd );
   }
}

// Product
public class Product()
{
   // Irgendwelche member sowie setter und getter
}

Ich hoffe, dass ich dir ein wenig helfen konnte,

Hutzli
 

Jasmin589

Mitglied
Oh stimmt, die Rückgabewerte habe ich vergessen. Genauso hatte ich die Pfeile vertauscht der Interface Pfeil ist ja so gestrichelt und nicht durchgezogen. Das mit der klein schreibung trainiere ich mir an, aber die Gewohnheit am Anfang Groß zu schreiben überwiegt noch. Zum Glück meckert dann immer Eclipse und ich seh das dann.

Ich versteh nur nicht ganz wie ich dann diese Aggregation in Java implementiere.
 

Hutzli

Aktives Mitglied
Ich versteh nur nicht ganz wie ich dann diese Aggregation in Java implementiere.
Ja, dazu habe ich einen kleinen Fehler gemacht.
Bei meinem Bespiel ist es eine Komposition, da gar keine Möglichkeit besteht, auf den Builder zuzugreifen.
Das heisst, der Builder lebt und stirbt mit dem Objekt Director.
Eine Aggregation sieht folgendermassen aus:
Java:
public class Director
{
   private Builder mBuilder;

   public Director()
   {
      // Hier koenntest du einen Default Builder
      // instanziieren.
      this.mBuilder = new ConcreteBuilder1();
   }

   public Director( Builder pBuilder )
   {
      this.mBuilder = pBuilder;
   }

   public void setBuilder( Builder pBuilder )
   {
      this.mBuilder = pBuilder;
   }

   public Builder getBuilder()
   {
      return mBuilder;
   }

   public Product constructObjects()
   {
      mBuilder.buildPart();
      return mBuilder.getResult();
   }
}

Für eine bessere Erklärung empfehle ich dir, den folgenden Thread durchzulesen:
http://stackoverflow.com/a/12431359
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
D was ist der vorteil vom Builder-design pattern? Java Basics - Anfänger-Themen 11
Encera Scene Builder Scroll Bar Java Basics - Anfänger-Themen 4
J Windows Builder auf Eclipse portable Java Basics - Anfänger-Themen 1
T Scene Builder 2 Java Basics - Anfänger-Themen 21
das_leon Interface Frame in einem Frame (Window Builder) Java Basics - Anfänger-Themen 2
P Window Builder Reiter im Fenster erstellen Java Basics - Anfänger-Themen 7
L Input/Output GUI Builder und Texteingaben Java Basics - Anfänger-Themen 10
H [JAVA] NetBeans GUI Builder - Events Java Basics - Anfänger-Themen 10
A Windows Builder Java Basics - Anfänger-Themen 4
G Problem mit Plugininstallation: Window Builder Pro Java Basics - Anfänger-Themen 5
J Welchen kostenlosen GUI-Builder nehmen? Java Basics - Anfänger-Themen 5
F Werteübergabe in Swing Formularen (gui Builder) Java Basics - Anfänger-Themen 9
Spin GUI Builder in Netbeans Java Basics - Anfänger-Themen 3
M netbeans GUI builder Java Basics - Anfänger-Themen 2
U Gui Builder Java Basics - Anfänger-Themen 6
K GUI Builder Software ? Java Basics - Anfänger-Themen 6
G GUI-Builder für Eclipse Java Basics - Anfänger-Themen 6
L Netbeans GUI-Builder Kontakt zur Main Klasse Java Basics - Anfänger-Themen 3
S GUI Builder gesucht Java Basics - Anfänger-Themen 10
W GoF-Pattern im Programmierer-Alltag Java Basics - Anfänger-Themen 113
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J Methoden Observer-Pattern mit Consumer und accept( ) Java Basics - Anfänger-Themen 6
Dimax Erste Schritte Pattern.matcher,die Besonderheiten. Java Basics - Anfänger-Themen 12
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
F Design pattern Java Basics - Anfänger-Themen 29
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
D Design Pattern Command Java Basics - Anfänger-Themen 3
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
fLooojava MVC Pattern und Observer Pattern Java Basics - Anfänger-Themen 6
S Regex Pattern Java Basics - Anfänger-Themen 3
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
Tarrew Proxy Design-Pattern Java Basics - Anfänger-Themen 1
M Methoden Pattern Matching Vokal Java Basics - Anfänger-Themen 2
agent47 Pattern split Java Basics - Anfänger-Themen 2
J MVC Pattern, mehrere Controller/Views/Models Java Basics - Anfänger-Themen 0
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
I Vertändnisfrage zu Prototype Pattern Java Basics - Anfänger-Themen 0
L Kompositum-Pattern Hilfe :O Java Basics - Anfänger-Themen 4
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
M MVC + Strategy Pattern Ansatz (mit Code) Java Basics - Anfänger-Themen 5
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
Rudolf OOP Übungen zu Design Pattern in Java Java Basics - Anfänger-Themen 6
A Observer Pattern Problem Java Basics - Anfänger-Themen 15
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
S OOP Regex Pattern Java Basics - Anfänger-Themen 2
P Grundsatzfrage zu Decorator-Pattern Java Basics - Anfänger-Themen 6
L Pattern Matching Java Basics - Anfänger-Themen 3
L RegExp bzw Pattern in Java Java Basics - Anfänger-Themen 6
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
M RegEx Pattern Matcher Java Basics - Anfänger-Themen 16
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
N Regexp Pattern & Matcher Problem Java Basics - Anfänger-Themen 4
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
R Welches Design pattern Java Basics - Anfänger-Themen 10
B static und Pattern matching Java Basics - Anfänger-Themen 22
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
T Decorator Pattern Java Basics - Anfänger-Themen 7
A Pattern und Matcher Java Basics - Anfänger-Themen 9
T Frage zu Pattern/Matcher Java Basics - Anfänger-Themen 6
D Pattern in Midi-Sequencer Java Basics - Anfänger-Themen 2
V Frage zu Decorator-Pattern Java Basics - Anfänger-Themen 4
S OOP Factory Pattern Java Basics - Anfänger-Themen 2
C OOP Observer Pattern Java Basics - Anfänger-Themen 2
M Regex-Pattern Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S Problem mit Pattern Java Basics - Anfänger-Themen 2
S Pattern.matches mit Ignore Case Java Basics - Anfänger-Themen 2
N in int array einen pattern(eine zahl) finden Java Basics - Anfänger-Themen 21
A Hilfe zu Pattern Java Basics - Anfänger-Themen 2
Y Pattern Java Basics - Anfänger-Themen 2
A Proxy Pattern implementieren Java Basics - Anfänger-Themen 2
N OOP MVC Pattern Java Basics - Anfänger-Themen 3
G Probleme mit Pattern und Aussagenlogik Java Basics - Anfänger-Themen 6
H Verständnis Strategy Pattern Java Basics - Anfänger-Themen 4
D regexp-pattern .. letzter schliff Java Basics - Anfänger-Themen 6
A ist das ein Singleton-Pattern? Java Basics - Anfänger-Themen 6
Z regexp/pattern für dateipfad Java Basics - Anfänger-Themen 5
A Factory Pattern Java Basics - Anfänger-Themen 2
D Objekte anlegen und Singleton Pattern Java Basics - Anfänger-Themen 21
O Erklärung für Pattern Java Basics - Anfänger-Themen 5
U Java Pattern Regex Java Basics - Anfänger-Themen 9
0 Probleme mit Pattern und Matcher Java Basics - Anfänger-Themen 5
K Observer Pattern notifyObservers Java Basics - Anfänger-Themen 9
S geeignetes Such Pattern Java Basics - Anfänger-Themen 6
J Zugriff mit Visitor Pattern auf eigen erstellte verk. Liste Java Basics - Anfänger-Themen 3
J Visitor Pattern Java Basics - Anfänger-Themen 4
W Observer-Pattern Java Basics - Anfänger-Themen 3
M Singleton Pattern Java Basics - Anfänger-Themen 35

Ähnliche Java Themen

Neue Themen


Oben