大三中复习体系结构考试回忆_第1页
大三中复习体系结构考试回忆_第2页
大三中复习体系结构考试回忆_第3页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.背书定义: 协作与协作设计,职责与职责分配,GRASP 之创建者2.?3.描述分层和 MVC。比较下二者,着重在性能和 XX 方面。首先说三层架构:UI(.aspx)- BLL(业务处理)- DAL(数据处理)(数据库)MVC:MVC(MView Controller)模型视图控制器很明显都是从整体上“策划”一个web 项目的实现逻辑共同点:三层架构的UI 层相当于 MVC 中的 View 层,作为视图,再说白一点,都是页面区别:BLL+DAL 相当于MVC 中的 M层, M层实现系统中的业务逻辑,当然也包含了数据的逻辑三层”中典型的M数据组成的,的,而MVC 里,M层是已实体类则是由业务

2、逻辑与M层又分为不同的层(个人认为就是三层架构的DAL+BLL),它的分层也是为了结构清晰和低耦合,区别比较大的就是三层架构中没有 Control 层,而是由单个页面上的控件的事件处理页面与业务逻辑之间,而 MVC 中control 层是作为联系视图层和 M降低了耦合性。的纽带,使得整个项目的结构更加清晰,举例说明这两种方法不同的实现思路:A 在警了,B 在闵行区也被劫持,他也打 110的浦东区逛街,有人要他,打 110 报了,他们打 110 的时候,接的是市局总部指挥中心,对于 A,来他是浦东分局的,对于 B,他的是闵行分局的,对于 AB 来说,他们不需要关心到底是他的,他们打 110(类似

3、警局去营救(控制器根据需求调用 m 层去完成对应的数据处理)。而三层架构在这个 过程中就像 A 或 B 被劫持了,他们直接找到当地警(调用 BLL 层方法)的来处理, 4.设计的各个层次(中高低)之间如何衔接?后面还有一个问题,忘了5.PPT 中 Detail Design 那章商店收银的例子,要求描述详细设计的过程和详细类图 20分于页面数据由 action 提交到控制器),由 110 指挥中心确定他的位置然后派出具体的地方6.编辑管理器,有 copy, cut, paste, 要实现 undo redo,画出设计类图,写代码 12分利用d 模式实现无限次数的 Undo/Redo 功能几乎现

4、在所有的文档式应用程序中,都提供了恢复/撤消功能,如 Word,Excel,还有Java 程序用的 JBuilder。的写在早期,许多的应用程序还只能提供单一的 Undo/Redo,自进入 90 年代以来,随着 OOP及 Design Pattern 的流行,实现无限次数的 Undo/Redo 编辑功能已不是难事。每一个编辑动作可以把它当成一个命令,如cut,del 等,在做每一个编辑动作前,先要保存旧的数据,以便于undo 它。为这些编辑命令设计了如下一个通用接口:publicerfacedpublic void execute();public void undo();其中 execute

5、 用来执行命令,undo 用来恢复(undo).接下来实现这个接口,先来实现Cut 命令:public classmand implementsdpublic void execute()/*/*备份旧数据 */剪切 */public void undo()/* 还原成备份的数据 */再来实现一个 Delete 命令:public classmand implementsdpublic void execute()/*/*备份旧数据 */删除 */public void undo()/* 还原成备份的数据*/OK,就只列出了 cut 和 del 两个命令,其它令相似的写法.每做一个编辑动作,就

6、执行一个相应的d.接下来这样的话些执行过要考虑如何将这dManager:令保存下来,以实现 undo/redo.再设计一个publicerfacedManagerpublic void public voidpublic void undo();public void redo();mand(mand();d cmd);再来实现一个public classdManager,dHistoryManager:dManager称作dHistoryManager implementsVector undoList=new Vector();Vector redoList=new Vector();pu

7、blic voidundoList.add(cmd);public voidundoList.clear(); redoList.clear();public void undo()mand(d cmd)mand()if ( undoList.size() = 0 ) return;d cmd = ( cmd.undo(); undoList.remove(cmd);redoList.add(cmd);d)(undoList.get(undoList.size()-1);public void redo()if ( redoList.size() = 0 ) return;d cmd = (

8、cmd.execute(); redoList.remove(cmd);undoList.add(cmd);d)(redoList.get(redoList.size()-1);通过mand()方法,每次执行的d 就可以保存到 undoList 中,假设再在我们在程序中放置了两个按钮,一个undo,一个 redo.按下 undo 按钮,就执行dHistoryManager 的undo()方法,undo()方调用undoList 中保存的最后一个d 的 undo()方法,并将这个d 再放到 redoList 中,最后从 undoList 中删除这个命令。这时如果再按 redo 按钮,它会调用dHistoryManager 中的 redo()方法。d 的 execute()方法,并将这个redo()方调用 redoList 中保存的最后一个d 又存回

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论