Qual è un buon posto dove mettere le pure funzioni che hanno connessioni a un sistema?
public class Core {
System system;
}
public class System {
SubSystem subSystem;
// subSystem.Multiply(a, b);
}
public class SubSystem {
public float Multiply(float a, float b) { return a * b; }
}
In questo caso, SubSystem
ha una strong connessione con System
. Le funzioni all'interno di SubSystem
sono pure / senza stato.
Il problema: se non c'è stato, perché preoccuparsi dell'istanza quando una classe statica potrebbe fare lo stesso lavoro?
In sostanza è Core.system.subSystem.Multiply(a, b);
su SubSystem.Multiply(a, b);
E, certo, possiamo andare con le classi statiche. Ma cosa succede quando ci sono più sistemi con più sottosistemi statici sparsi nel progetto? La connessione viene persa e diventa rapidamente un disastro.
Per come la vedo io, ci sono le seguenti opzioni:
Core.system.subSystem.Multiply(a, b); // instances
SubSystem.Multiply(a, b); // static
SystemUtils.SubSystem.Multiply(a, b); // with namespace
Ma quale è il migliore? E c'è un modo migliore?