软件架构复习笔记5_第1页
软件架构复习笔记5_第2页
软件架构复习笔记5_第3页
软件架构复习笔记5_第4页
全文预览已结束

下载本文档

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

文档简介

1、 HYPERLINK http:/blog.sheimi.me/note/2012/06/20/software-architecture-review-6.html 软件架构复习笔记(5) - 设计模式20 Jun 2012At NJU普通 Programming to Interface 有哪些手段?集合类型PTI有那些手段普通:模块化信息隐藏普通情况下的Programming to Interface最需要的是低耦合(即基于方法调用的耦合:控制耦合、印记耦合和数据耦合),进一步需要信息隐藏(通过方法表现外部行为,同时隐藏内部实现)集合类型:Iterator PatternProxy Pa

2、tternPrototype Pattern?OCP有那些手段(提示:不只是继承)Be open for extension: modules behavior can be extendedBe close for modification: source code for the module must not be changesAggregationDynamic Binding: PolymorphismRuntime registration: Event StyleStartup binding: Configration filesLoad Binding: Component

3、 replacementAdherence to defined protocals无论是哪一种绑定,或者什么,都必须在设计或使用的时候遵循某一种接口或者是规范。Modifiability TacticsLoclaize change:Semantic coherenceAnticipate expected changeGeneralize moduleLimit possible optionAbstract common servicePrevention of ripple effectHide informationMaintain existing interfaceRestric

4、t communication pathsUse an intermediaryDefer binding time:Runtime registrationConfiguration filesPolymorphismComponent replacementAdherence to defined protocals一个模块的信息隐藏有哪两种基本类型,各自有哪些处理手段?两种决策类型:需求:即一个模块的接口功能与模块内部程序细节的分离给出功能接口,隐藏功能实现程序的细节basic secrete: external behavior VS internal implementationhi

5、des the implementation of an important design decisionEspecially if there is a list of all possible design changes is made hiding assumption listall design decisions are independent of each other使用facade使用controller都是增加一个中间的东西来是接口和内部细节分离变化:将要发生变化的程序部分需要进行一个决策给出需要修改部分的接口,隐藏待修改部分的实现程序细节additional secr

6、ets: changesYou then separate each design secret by assigning it to its own class, subroutine, or other design unit.Next you isolate (encapsulate) each secret so that if it does change, the change doesnt affect the rest of the program.strategy pattern / state pattern / bridge pattern共性,可变性实现共性与可变性有哪

7、些手段?对给定的场景,给出共性与可变性的设计方案,将继承和聚合搞好手段:聚合,继承(多态)在解决De-Coupling时,常常使用哪些Indirection的手段?提示:对给定场景给出Indirection的解决方案(从常见模式来考虑)Avoiding Repetition: DO it OnceDIPdefining a interface in a module that a separate module intends to implement is fundamental way to break dependencies and reduce couplingIndirection

8、patterns:FacadeProxyAdapterBridge ?DelegatorMediatorObserverMVC与分层方式的区别(要具体到实现)分层的方式主要有两点:禁止下层调用上层禁止跨层调用也就是说每一层的代码中只可以 import 它下层的东西下层返回上层的时候只能是普通的 Value Object 或者是值传递而MVC这三个东西互相都有关系:M 拥有 V 的引用,当 M 发生变化的时候需要通知V,这个应用是 V 自己注册给 M 的V 拥有 M 的引用,V 先提前注册感兴趣的 M,当 M 发生变化通知 V 时,V 向 M 获取更新数据(只可以使用,不可以修改)V 拥有 C 的引用,当用户发起事件的时候,V 把事件传递给相应的 CC 拥有 M 和 V 的引用,它有两个作用:1)根据 V 传递的用户事件,交给相应的 M 进行处理,起到转发的作用,2)选择相应的 View 进行显示因此可以看出:分层需要遵守严格的规定,MVC 也有其相应的风格规定MVC中 V 需要在 M 中注册,VM 之间需要有回调的关系MVC三者之间

温馨提示

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

评论

0/150

提交评论