Avendo un'applicazione WinForms più grande con più classi attualmente faccio riferimento a diversi oggetti "centrali" intorno alle chiamate di funzione.
Questo porta a più parametri del metodo.
Esempio:
public static class Program
{
private static MyCentral _central;
...
}
...
public class SomeController
{
public object SomeFunction(MyCentral central)
{
// Do something with the MyCentral instance.
}
}
Ora mi chiedo se dovrei abbandonare questo approccio e utilizzare invece i singleton per quegli oggetti centrali in modo che tutti possano sempre accedere a questi oggetti e non ho più bisogno di passarli in giro.
Esempio:
public static class Program
{
public static MyCentral Central { get; private set; }
...
}
...
public class SomeController
{
public object SomeFunction()
{
// Do something with the Program.Central singleton.
}
}
La mia domanda:
Esistono regole di base per scegliere se privilegiare l'approccio singleton o "passing objects around"?