In parole semplici, una delle mie classi c # è diventata troppo grande e sto dividendo questa classe in diverse sottoclassi raggruppando metodi semanticamente correlati (in realtà azioni che generano effetti collaterali).
Quindi, per darti un esempio:
class ViewModel
{
// a lot of properties bound to view (MVVM pattern)
public Property 1 //bound to view
public Property 2 //bound to view
// a lot of actions, containing the controller logic of the view
//Function 1 changes Property 1 -> shall be moved to class MyViewModelHelper
Function1() {}
Cioè, quando creo una classe helper per viewModel, ha bisogno di ricevere il riferimento di istanza del modello di vista principale nel suo costruttore, in modo che abbia accesso alle proprietà pubbliche.
Non voglio che la vista debba avere la conoscenza delle classi di helper, cioè il modello di vista principale deve fornire tutte le proprietà ... ma le funzioni delegheranno il lavoro alle classi helper per mantenere la classe viewModel mantenibile.