Factory method: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
TheClue (discussione | contributi)
completamento pagina, rimozione stub
Atarubot (discussione | contributi)
m Applicabilità: fix data in cita libro-web-news... using AWB
Riga 12:
* La gestione del ciclo di vita degli oggetti gestiti deve essere centralizzata in modo da assicurare un comportamento consistente all'interno dell'applicazione.
 
I metodi di factory sono spesso utilizzati in [[toolkit]] e [[framework]], dove il codice delle librerie necessita di poter creare oggetti il cui tipo è implementato nelle sottoclassi delle applicazioni che utilizzano il framework. Essi sono, inoltre, utilizzati nel [[Test Driven Development]] per porre le classi sotto test.<ref>{{citeCita booklibro
|authorautore=[[Michael Feathers|Feathers, Michael]]
|isbnid=ISBN 978-0-13-117705-5
|titletitolo=Working Effectively with Legacy Code
|datedata=October 2004
|publishereditore=Prentice Hall Professional Technical Reference
|___locationcittà=Upper Saddle River, NJ
}}</ref> Se una classe <code>Pippo</code> crea un oggetto <code>Pluto</code> che non può essere posto sotto una suite automatica di [[unit testing]] (ad esempio perché non può accedere ad una risorsa di produzione cui ha bisogno, come una base dati), allora la creazione dell'oggetto <code>Paperino</code> è posta nella [[funzione virtuale]] del factory <code>createPaperino</code> nella class <code>Pippo</code>. Per il test, <code>TestPippo</code> (una sottoclasse di <code>Pippo</code>) può essere creata, con il metodo <code>createPaperino</code> ridefinito per creare e ritornare un oggetto di <code>FakePaperino</code>, un oggetto di mock-up. Gli unit test possono, quindi, usare <code>TestPippo</code> per testare le funzionalità di <code>Pippo</code> senza incorrere negli effetti collaterali dati dall'uso dell'oggetto reale <code>Paperino</code>.