Quando modellazione classi, qual è il modo preferito di inizializzazione:Costruttori vs metodi di fabbrica
- Costruttori, o metodi
- fabbrica
E quali sarebbero le considerazioni per l'utilizzo di una di esse ?
In determinate situazioni, preferisco avere un metodo factory che restituisce null se l'oggetto non può essere costruito. Questo rende il codice pulito. Posso semplicemente verificare se il valore restituito non è nullo prima di intraprendere un'azione alternativa, in contrasto con il lancio di un'eccezione da parte del costruttore. (Personalmente non mi piacciono le eccezioni)
Dire, ho un costruttore su una classe che si aspetta un valore di identificazione. Il costruttore utilizza questo valore per popolare la classe dal database. Nel caso in cui non esista un record con l'ID specificato, il costruttore lancia una RecordNotFoundException. In questo caso dovrò racchiudere la costruzione di tutte queste classi all'interno di un blocco try..catch.
In contrasto con questo, posso avere un metodo factory statico su quelle classi che restituiscono null se il record non viene trovato.
Quale approccio è migliore in questo caso, metodo costruttore o stabilimento?
Il metodo di fabbrica statico è diverso dal modello di progettazione GoF - Modello metodo di fabbrica. http://stackoverflow.com/questions/929021/what-are-static-factory-methods-in-java –
Si prega di non confrontare con il modello metodo di fabbrica di modelli di progettazione GoF. –
questo non mi spiega nulla – Sushant