In questo articolo puoi vedere che La vista ha (utilizza o aggrega) il controller e ConcreteView ha il modello Concrete.
public abstract class View
{
public abstract void Update();
private readonly Controller Controller;
protected View()
{
}
protected View(Controller controller)
{
Controller = controller;
}
public void ContextInterface()
{
Controller.AlgorithmInterface();
}
}
public class ConcreteView : View
{
private object ViewState;
private ConcreteModel Model { get; set; }
public ConcreteView(ConcreteModel model)
{
Model = model;
}
public override void Update()
{
ViewState = Model.ModelState;
}
}
Quindi questo è considerato il classico MVC di GoF. Non vedo dove la vista non sia a conoscenza del modello e viceversa. Voglio dire, cosa succede se mettiamo il puntatore del modello nella vista com'è adesso e non usiamo il controller. Qual è il problema qui? Che cosa questo modello di strategia fa per me (vedi nell'articolo). Inoltre, per quanto ne so, in MVC la vista non dovrebbe conoscere il modello e il modello della vista. Quindi se hai un riferimento nella vista del modello, non significa che si conoscono l'un l'altro?