1 MVC的实现
1.1 分析应用问题,对系统进行分离
分析应用问题,分离出系统的内核功能、对功能的控制输入、系统的输出行为三大部分。设计模型部件使其封装内核数据和计算功能,提供访问显示数据的操做,提供控制内部行为的操做以及其余必要的操做接口。以上造成模型类的数据构成和计算关系。这部分的构成与具体的应用问题紧密相关。
1.2 设计和实现每一个视图
设计每一个视图的显示形式,它从模型中获取数据,将它们显示在屏幕上。
1.3 设计和实现每一个控制器
对于每一个视图,指定对用户操做的响应时间和行为。在模型状态的影响下,控制器使用特定的方法接受和解释这些事件。控制器的初始化创建起与模型和视图的联系,而且启动事件处理机制。事件处理机制的具体实现方法依赖于界面的工做平台。
1.4 使用可安装和卸载的控制器
控制器的可安装性和可卸载性,带来了更高的自由度,而且帮助造成高度灵活性的应用。控制器与视图的分离,支持了视图与不一样控制器结合的灵活性,以实现不一样的操做模式,例如对普通用户、专业用户、或不使用控制器创建的只读视图。这种分离还为在应用中集成新的I/O设备提供了途径。
2 MVC的变化
把模型、视图、控制器实行分离,使设计和使用有了很大灵活性。可是,在现实中,视图和控制器的功能一般是紧密地联系在一块儿的。控制视图工做的输入事件一般都是与视图的构成相关的。在现实界面设计环境中,界面操做事件及其处理都是与界面形式设计紧密关联的。在这种状况下,把视图和控制器分离开,就给分析和设计带了了不方便,而且运行的效率低。
所以,能够把视图和控制器结合起来加以设计和实现。在上面的实现说明中,只要把视图和控制器的类合并生成新的视图类便可。这样,仍然保持着与模型的分离,所以相同的模型仍然可使用多个视图。这些视图自己已经具有了事件处理能力,仍然能够经过模型对其功能进行控制。
3 MVC的优势及不足之处
3.1 MVC的优势
MVC的优势表如今如下几个方面:
(1) 能够为一个模型在运行时同时创建和使用多个视图。变化-传播机制能够确保全部相关的视图及时获得模型数据变化,从而使全部关联的视图和控制器作到行为同步。
(2) 视图与控制器的可接插性,容许更换视图和控制器对象,并且能够根据需求动态的打开或关闭、甚至在运行期间进行对象替换。
(3) 模型的可移植性。由于模型是独立于视图的,因此能够把一个模型独立地移植到新的平台工做。须要作的只是在新平台上对视图和控制器进行新的修改。
(4) 潜在的框架结构。能够基于此模型创建应用程序框架,不只仅是用在设计界面的设计中。
3.2 MVC的不足之处
MVC的不足表如今如下几个方面:
(1) 增长了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增长结构的复杂性,并可能产生过多的更新操做,下降运行效率。
(2) 视图与控制器间的过于紧密的链接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是颇有限的,反之亦然,这样就妨碍了他们的独立重用。
(3)视图对模型数据的低效率访问。依据模型操做接口的不一样,视图可能须要屡次调用才能得到足够的显示数据。对未变化数据的没必要要的频繁访问,也将损害操做性能。
(4) 目前,通常高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC须要和创建分离的部件的代价是很高的,从而形成使用MVC的困难。 框架