Non seguo rigorosamente SOLID in generale, ma cerco di fare in modo di separare le responsabilità delle mie lezioni.
Stavo sviluppando una piccola app con un servizio di Windows basato su Topshelf e mi sono reso conto che non capisco cosa dovrebbe fare la classe Program
. Ovviamente potrei probabilmente spingere la maggior parte del codice in Main
, ma qual è la ragionevole quantità di responsabilità che questa classe dovrebbe avere?
Le mie opzioni:
-
Program
è solo una custodia perMain
, che è solo un punto di accesso per l'app, e il resto del codice dovrebbe essere spostato in una classe separata. -
Main
dovrebbe essere solo una radice di composizione dell'applicazione, con una classe separata che gestisce il flusso di lavoro generale (come gli arresti regolari sulle eccezioni) e le chiamate alla logica aziendale. -
Un altro metodo statico in
Program
deve gestire la composizione e le chiamate alla classe dell'applicazione. -
Program
è la classe del flusso di lavoro dell'applicazione e i suoi metodi non statici chiamano la logica aziendale, mentreMain
è un punto di ingresso.