版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件设计与体系结构6.5
MVC软件体系结构内容1.应用场景2.概念与机制3.应用实例4.讨论21.应用场景引例:
设计一个基于互联网的网上二手车拍卖软件,需要有用户图形输入界面,包括车辆的图片、文字介绍以及当前的竞拍价格等信息的显示界面。系统不但要有灵活互动的图形界面人机接口,还应该具有很好的可扩展性。要求:相同的信息可以有不同的显示方式数据的显示必须立即反映出数据的变化用户界面易于改变,甚至在运行时改变3二手车数据文字介绍显示当前拍价显示图片表示1.应用场景设计方案方案1:将界面和核心功能紧密地耦合在一起缺陷:增加新的功能或修改界面,需要重新编译整个类方案2:将业务逻辑与显示部分分开好处:修改业务逻辑或显示模块时,可以分开进行4事务逻辑模块封装数据封装事务逻辑显示模块用户输入显示信息图6.96将业务逻辑模块与显示模块分开2.概念与机制MVC(Model-View-Control,模型-视图-控制器)20世纪80年代,为编程语言Smalltalk-80发明后来,被推荐Java
EE的设计架构三个部分Model:核心功能(业务逻辑)与数据View:用户显示信息Controller:处理用户输入,界面处理逻辑逻辑结构图:图6.9752.概念与机制62.概念与机制MVC体系结构的设计类图有多种版本,这里给出两种:一般形式的结构类图:图6.98基于观察者机制的结构类图:图6.9972.概念与机制-一般形式结构类图82.概念与机制-基于观察机制的结构类图92.概念与机制-基于观察机制的结构类图基于观察者模式Model:被观察者View:观察者Controller:从用户图形界面接收用户输入然后,根据用户输入的类型,调用Model的相应业务功能如用户还有其他请求,也可以调用Model的其他业务功能接着,在Model类的withdraw()方法中,访问数据库的表进行相应的处理。每当Model类发生更新,View也会自动更新103.应用实例例6.23采用MVC体系结构(一般形式)的二手车拍卖系统的设计与实现。设计类图:图6.100ModelCarModel:业务逻辑部分tell()方法:通知视图ViewCarGUIView:显示车的图片、文件介绍CatBitView:显示拍卖价格信息Controller根据CarAuctionGUI对象输入客户选择信息更新CarModel类的数据113.应用实例-例6.23123.应用实例-例6.23程序演示:eg6_23133.应用实例-例6.24例6.24采用MVC体系结构(基于观察者模式)设计与实现的二手车拍卖系统,用户输入界面和两个显示视图分别独立显示的情况。设计类图:图6.104143.应用实例-例6.24153.应用实例-例6.24程序演示:eg6_24163.应用实例-例6.25例6.25采用MVC架构(基于观察者模式)设计与实现二手车拍卖系统,用户输入界面和显示视图都在同一个窗口中显示的情况。设计类图:图6.105173.应用实例-例6.25183.应用实例-例6.25程序演示:eg6_25194.讨论优点对于同一个模型,可以由不同的视图与控制器,以便提供给用户不同类型的用户图形界面改变-传播机制保证了模型在改变的同时自动刷新所有的视图,所有的视图都同时实时地反映了模型的现有状态MVC体系结构的设计使得改变用户图形界面变得非常容易,MVC架构非常适合业务逻辑较少改变,而用户图形界面需要经常改变的应用。由于全部的核心数据与核心功能在模型中,因此,容易对核心的应用进行测试。可扩展性好。204.讨论三层体系结构VS
MVC相同之处前者的显示层与MVC的View类似前者的应用层与MVC的Model类似区别各个模块之间的调用关系不同:三层体系结构中,显示层不允许直接调用永久数据存储层。显示层需调用应用层的方法访问永久数据层。而MVC体系结构的程序组件之间的交互是三角形的,两两之间可以直接交互。对数据库的访问方式不同:三层体系结构有永久数据存储层,负责对数据库的访问。而MVC中没有专门模块,一般情况可由Model负责对数据库的访问,但也可由Controller实现此功能。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论