分享
 
 
 

关于 MVC 模式中的通知机制

王朝vc·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

一、简介

一般应用中用户界面的变化相对较为频繁 , 有时需要支持多种表现模式(如 WEB 客户端和 GUI 客户端),但是数据和业务逻辑相对保持稳定。

MVC(Model-View-Controller) 模式是一种常用的设计模式 ,MVC 将模型 , 显示和控制进行了分离,可以使得应用更加方便实现对多种表现模式的支持及降低表现形式修改对整体系统的影响。由于本文重点讨论的是 MVC 中的通知机制,至于 MVC 的其它内容可以参考其它相关文档。

图表一MVC模式

二、MVC的通知机制

上图是在 SUN 的 J2EE BluePRints 中关于 MVC 模式的描述 , 在实现 MVC 模式时首先应该注重的是模型与视图之间的关系。在这些关系中尤其值得大家注重的是模型通知视图,假如不能正确的设计这个通知机制(模型与视图之间关联实现通知)便会完全违反 MVC 的设计初衷。 MVC 模式的其中一个目的在于使模式独立与视图,然而不正确的理解和设计通知机制会导致模型和试图的依靠性。

2.1 采用 Observer 模式实现通知机制既要实现模式到视图的通知机制,同时有要确保实现模型与视图的分离。通常我们可以通过Observer模式来实现这样的通知机制。

图表2 Observer模式

视图实现 Observer 接口,并向模型注册,模型通过调用所维护的观察者的实例调用 Update 方法来通知视图进行刷新。可见, Observer 接口有效的实现了模型和视图间的耦合性的分离。

2.2 模型通知视图还是控制器通知视图

图表 3 基于 MVC 的 J2EE 应用

在将 MVC 模式应用于的总体结构时,经常会有是模型通知视图还是控制器通知视图的问题,其实我认为这个问题完全取决于对系统各个部分的划分和理解,假如我们把模型层更多划分为数据实体 ( 如: Entity Bean) 则可能会发现,其实我们的通知机制是不能由模型部分来完成的,而是由我们的控制器来完成的。这种划分好象有些违反了 MVC 模式,但实事上非凡是一些想要同时支持 B/S 和 C/S 的 J2EE 应用,控制器和模式通知机制经常有较大的耦合性( C/S 结构中,客户完全通过会话 Bean 来完成业务),可能有时在一起实现更好。

总之,更好的内聚性和更松散的耦合性才是架构设计的重点,应该做出适合自身应用的 MVC 架构。

三、结束语

MVC 模式的要害在于分离易变和不易变部分间的耦合性,所以在应用 MVC 模式时一定要注重解耦才是要害,同时一定要更据具体的使用环境进行调整,不要生搬硬套,如 Microsoft 的 MFC 采用的 Document-view 就是 MVC 的变体,它把控制器合并到视图中,这是因为考虑了视图与控制器紧耦合的影响。

【参考文献】

1. Sun Microsystem , J2EE BluePrints

2. GOF,Design Patterns, 机械工业出版社, 2002

作者:

蔡超,贵州大学,计算机软件与理论,硕士

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有