2010-08-28 26 views
5

Sono un newbie completo quando si tratta dell'uso di classi e metodi, modelli, ecc. In effetti, ho appreso per la prima volta qui su Stackoverflow durante la navigazione nelle domande relative a Java :-)Quali sarebbero considerati buoni esempi di implementazione del pattern builder quando vengono utilizzati nello sviluppo di una GUI?

In risposta a una precedente question è stato suggerito di esaminare l'uso del Builder Pattern nello sviluppo della mia GUI e quindi sto cercando esempi di facile comprensione che dimostrino come l'interfaccia utente di un'applicazione possa essere combinata usando questo pattern e il metodo-concatenamento, ecc.

Grazie per la lettura.

risposta

4

Joshua Bloch Item 2: Consider a builder è sempre un buon punto di partenza. Per quanto riguarda lo sviluppo di GUI, molti gestori di layout usano il modello di builder. A Visual Guide to Layout Managers è una buona introduzione.

+0

Grazie a trashgod, ho votato e ho accettato questa come risposta per l'eccellente articolo di Dr.Dobbs. –

+0

BTW, l'articolo 2 è tratto da _Effective Java_ di Joshua Bloch, 2a ed. http://java.sun.com/docs/books/effective/ – trashgod

3

Penso che "Source Making" faccia un buon lavoro nell'introdurre modelli di progettazione (oltre a UML, Antipattern e Refactoring). Potresti voler controllare il sito.

potete leggere il Builder qui: di Source Making: Builder Design Pattern

+0

inizialmente ho respinto, ma il costruttore la discussione include esempi piacevoli _before_ e _after_ in diverse lingue: http://sourcemaking.com/design_patterns/builder – trashgod

+0

+1 La fonte maki Il libro è IMHO molto più piacevole da leggere rispetto al libro GoF. – helpermethod

+0

Ciao S.Jones - Ottimo link, grazie per aver condiviso :-) –

4

Probabilmente ci sono altri (e migliori) esempi ma qui ce n'è uno.

Quando si lavora con GridBagConstraints, si potrebbe usare questa orribile costruttore:

public GridBagConstraints(int gridx, int gridy, 
          int gridwidth, int gridheight, 
          double weightx, double weighty, 
          int anchor, int fill, 
          Insets insets, int ipadx, int ipady) 

Ma considerare inutilizzabile. E le persone più spesso finiscono per usare il costruttore vuoto e impostare i vari attributi pubblici per sovrascrivere i valori di default.

In alternativa, si potrebbe usare un costruttore, qualcosa di simile:

somePanel.add(
    getContent(), 
    new ConstraintsBuilder() 
     .gridLocation(1, 1) 
     .gridSize(1, 1) 
     .weight(0.0, 0.0) 
     .anchor(NORTHWEST) 
     .build()); 

Solo un esempio.

+0

Si vede qualcosa di simile nell'editor GUI di NetBeans con 'GroupLayout': http://stackoverflow.com/questions/2561540 – trashgod

+0

Cay Horstmann ha un grande esempio di un costruttore GBC come questo ... http://www.horstmann.com/articles/GBC.java –