MVC(Model - View - Controller)由模型、 视图、 控制器 组成。

学习MVC最好的方法就是看它由哪些模式共同组成。

一、模型(Model)利用”观察者模式”让视图和控制器可以随最新的状态而改变。模型实现了观察者模式,当状态改变时,相关对象将持续更新。使用观察者模式,可以让模型完全独立于视图和控制器。同一个模型可以使用不同的视图,甚至可以同时使用多个视图。

二、视图 和 控制器 使用了 “策略模式“。控制器是视图的行为,如果你希望有不同的行为,可以直接换一个控制器。视图是一个对象,可以被调整使用不同的策略,而控制器提供了策略。视图只关心系统中可视的部分,对于任何界面行为,都委托给控制器处理。”策略“ 解耦了视图与模型 之间的关系,因为控制器负责与模型交互来传递用户的请求。对于工作是怎么完成的,视图毫不知情。

三、视图内部使用了”组合模式“来管理窗口、按钮以及其它显示组件。显示包括了窗口、面板、按钮、文本标签等。每个显示组件如果不是组合节点(如窗口),就是叶节点(如按钮)。当控制器告诉视图更新时,只需告诉视图最顶层的组件即可,组合会处理其余的事。