Direi di sì. Penso che ci sia stato un po 'di discussioni nel corso della giornata sulla riprogettazione di Java in modo che ogni classe avesse un solo metodo: run()
. Questo è effettivamente ciò di cui stai parlando. Questo non è mai stato da nessuna parte e non ha aumentato la trazione da nessun'altra parte, perché non potevi davvero farci molto.
Ciò che si inizia a correre a questo punto è un momento molto difficile impiantare strutture di controllo molto elementari. Perché se pensi a cosa assomiglia a un'istruzione if:
if (condition)
{
// do this
}
else
{
// do that
}
quello sta solo facendo una cosa? È solo running()
? No, sta facendo due cose, e non è nemmeno lo stesso uno o due ogni volta. A volte doesThis()
e talvolta doesThat()
. Quindi quello che hai lì, con praticamente qualsiasi istruzione if con una clausola else, è una scelta:
-
Utilizza più funzioni all'interno della classe o del modulo o altro.
-
Utilizza solo una funzione, ma con un comportamento distinto in punti diversi che possono essere facilmente convertiti in una funzione separata.
1 pulitore è maggiore di 2 o 2 pulitore di 1? ...Sì. Dipende davvero dalla situazione, con riguardo a quale vuoi andare. Quello che non vuoi fare è sbarazzarsi delle affermazioni. E ogni ciclo non infinito che non è automaticamente interrotto implica una dichiarazione if.
Perché creare una classe separata per ogni aggiornamento, eliminazione, creazione e acquisizione? Da qualche parte lungo la strada, finirai comunque per dover fare questo:
if (condition1)
{
xxxxxCreator.Create();
}
else if (condition2)
{
xxxxxGetter.Get();
}
else if (condition3)
{
xxxxxUpdater.Update();
}
else
{
xxxxxDeleter.Delete();
}
Conto uno, due, tre, quattro cose diverse che vengono fatte tutte nella stessa classe. Anche se si suddividono in istruzioni più piccole, ci sarà comunque un condizionale da qualche parte, anche se è nel codice macchina. ... E questo viola una simile interpretazione severa della necessità di una funzione / classe che ha bisogno di fare una sola cosa.
Dato che non puoi rinunciare ai condizionali nella programmazione, non dovresti cercare di aderire a un'interpretazione così rigorosa. Vai avanti e crea una classe xxxxxManager
con metodi Get()
, Update()
, Create()
e Delete()
.