So che l'idea della coesione strong si applica ai metodi quanto vale per le classi. Per essere chiari quando dico coesione strong di un metodo intendo un metodo che fa solo un compito e lo fa bene. Questa idea funziona davvero per semplici getter e setter . Ma a volte di solito ci imbattiamo in metodi che fanno più di un compito internamente, anche se sembra che stia facendo una singola attività se si guarda ad un livello più alto di astrazione. Un esempio di tale metodo può essere:
public void startUp() {
List<SubSystem> subSystems = getSubSystems();
sychronized(subSystems) {
for (SubSystem subSystem : subSystems) {
subSystem.initialize();
}
}
}
E all'interno di quei metodi di subSystem#initialize()
sta succedendo molto. Quindi questa è una violazione del principio alta / strong coesione ?