很多人对MVC模式感到困惑,但是在翻阅《Head First设计模式》这本书后(顺带一提,我不喜欢这个品牌,但这个例子相当好),它声称MVC或者说是Model View Controller是多种模式的混合 - 中介者、观察者等等...
最近我做了一个原型,以下是代码示例,使用的是C#语言,应该很容易理解。
Person : IPerson {
public Name { get; set;}
public Age { get; set;}
}
IPerson只是定义上述内容的一个接口 - 为了简单起见,我已经省略了它。
PersonController : IPersonController {
public event DetailsUpdated;
public void SetAge(int age);
public int GetAge();
public void SetName(string name);
public string GetName();
}
我知道上面的内容可能也可以是属性本身 - 但这只是一个简单的例子。事件在每次数据发生更改时触发 - 比如在SetAge/SetName中。
interface IView {
void Initialize();
void SetAgeClicked(object sender, EventArgs e);
void SetNameClicked(object sender, EventArgs e);
}
初始化装置电线-例如表单中的文本框。SetAge / SetName是按钮事件,所以使用表单/页面等必须具有这些方法。
Form : IView {
// IView is implemented.
// Form is wired up
// Initialize is set etc...
}
我听说MVC的测试是当你添加一个新视图时,是否容易使一切都正常运行 - 是的,它很容易。不过,这是MVC吗?还是其他什么东西?
任何建议或意见都将是极好的。它可以工作 - 只是想知道为什么。
谢谢。