Java: modello di metodo di progettazione di fabbrica | Design orientato agli oggetti | Modelli di progettazione

Pubblicato: 2013-06-28

Progettazione orientata agli oggetti con metodo di progettazione di fabbrica

Factory Design Pattern è uno dei modelli Creational Design ed è ampiamente utilizzato in JDK e in framework come Spring MVC e Struts. Il modello del metodo factory è un modello di progettazione della creazione orientato agli oggetti per implementare il concetto di factory e affronta il problema della creazione di oggetti (prodotti) senza specificare l'esatta classe di oggetto che verrà creato. L'essenza di questo modello è “ Definire un'interfaccia per creare un oggetto, ma lasciare che le classi che implementano l'interfaccia decidano quale classe istanziare. Il metodo Factory consente a una classe di rinviare l'istanza alle sottoclassi ".

Modelli di progettazione Java

Per prima cosa impariamo come implementare il modello di fabbrica in java. Creeremo 5 classi per implementare questo modello.

  • Superclasse (CrunchfiyCompany.java)
    • La super classe nel modello di fabbrica può essere un'interfaccia, una classe astratta o una normale classe java. Per il nostro esempio, abbiamo la super classe come classe astratta con il metodo toString() sovrascritto a scopo di test.
  • Sottoclasse1 (CrunchifyEbay.java)
    • Si noti che la classe sta estendendo la classe CrunchfiyCompany.
  • Sottoclasse2 (CrunchifyGoogle.java)
    • Si noti che la classe sta estendendo la classe CrunchfiyCompany.
  • Classe di fabbrica (CrunchifyFactoryPattern.java)
    • Ora che abbiamo le super classi e le sottoclassi pronte, possiamo scrivere la nostra classe factory.
    • Possiamo mantenere la classe Factory Singleton o possiamo mantenere statico il metodo che restituisce la sottoclasse.
    • Si noti che in base al parametro di input, viene creata e restituita una sottoclasse diversa.
  • Classe di test (CrunchifyFactoryPatternTest.java)
    • Semplice programma client di test che utilizza l'implementazione del modello di fabbrica sopra.

Altro deve leggere:

  • Thread-Safe e un'implementazione singleton veloce in Java
  • Che cos'è Daemon Thread in Java? Esempio allegato

Altri esempi che utilizzano il modello di fabbrica?

  • I metodi java.util.Calendar, ResourceBundle e NumberFormat getInstance() utilizzano il modello Factory.
  • valueOf() nelle classi wrapper come Boolean, Integer ecc.

Vantaggi del modello di fabbrica:

  • Viene utilizzato quando abbiamo una superclasse con più sottoclassi e in base all'input, dobbiamo restituire una delle sottoclassi. Questo modello si assume la responsabilità dell'istanziazione di una classe dal programma client alla classe factory.
  • Il modello di fabbrica fornisce un approccio al codice per l'interfaccia piuttosto che per l'implementazione.
  • Il modello di fabbrica rimuove l'istanziazione delle classi di implementazione effettive dal codice client, rendendolo più robusto, meno accoppiato e facile da estendere. Ad esempio, possiamo facilmente modificare l'implementazione della classe PC perché il programma client non ne è a conoscenza.
  • Il modello di fabbrica fornisce l'astrazione tra l'implementazione e le classi client tramite l'ereditarietà.

Svantaggi:

  • La fabbrica deve essere utilizzata per una famiglia di oggetti. Se le classi non estendono la classe base o l'interfaccia comuni, non possono essere utilizzate in un modello di progettazione di fabbrica.

Elenco di tutti i tutorial di Java Web Development, Spring MVC.