Attualmente sto risolvendo un grosso problema al livello 27. Lì ci viene chiesto di creare una classe StatisticManager e renderla un singleton. Ok nessun problema! Successivamente, in altre classi del programma devo chiamare i metodi di StatistcManager, e qui inizio a incontrare piccoli momenti fastidiosi, devo scrivere una variabile di riferimento
StatisticManager statisticManager = StatisticManager.getInstance(); statisticManager.method();
o così: StatisticManager.getInstance().method();
Sono un sacco di lettere in più! Sarebbe molto più semplice rendere la classe statica e scriverla in questo modo: StatisticManager.method();
penso che forse un singleton abbia qualcosa da guadagnare rispetto a una classe statica? Ho letto un articolo su Habré e non fa che rafforzare i miei dubbi. Singleton, almeno in questo compito, è ridondante. Finora, vedo un solo utilizzo per un singleton: se dobbiamo risparmiare risorse e creare un oggetto non immediatamente, ma qualche tempo dopo, quando ne abbiamo bisogno. In altri casi, una classe statica va bene. Su Habré scrivono anche qualcosa sull'eredità, ma riesco a malapena a immaginare una situazione del genere, e probabilmente nemmeno molto spesso. Se sbaglio, correggimi per favore. Voglio solo capire meglio i principi di progettazione e forse questo aiuterà qualcun altro a capirlo :)
GO TO FULL VERSION