现在的位置: 首页 > 综合 > 正文

Design mode study notes

2014年03月09日 ⁄ 综合 ⁄ 共 1262字 ⁄ 字号 评论关闭

1. MVC controller 用来描述不同的物体对M有何影响。

2. 从View到Controller是一个Strategy模式。通过不同的strategy来控制view对controller的影响。

3. MVC主要应用到Observer、Strategy、Composite模式。

4. 描述设计模式的方案

意图、动机、实用性、结构、参与者、协作、效果、实现

5. Bridge 将抽象和实现部分分离、使它们可以独立变化

Builder 将复杂对象的创建和表示分离,使相同的创建过程可以创建不同的表示

chain of Responsibility 解除请求发送者和接收者之间的耦合,使多个对象都有机会处理这个请求。

comman 将一个请求封装为一个对象,通过不同的请求对可以进行参数化

Facade 为子系统提供一个一致的接口。

6.类继承和接口继承的区别

类继承,一个对象的实现定义了另一个对象的实现,是代码的共享机制。

接口继承,一个对象什么时候能用来代替另一个对象。?

7.代码复用、继承、组合

优先使用对象组合而不是继承。

8.strategy、visitor、state都使用了委托机制

strategy,对象将一个特定请求委托给一个描述请求执行策略的对象

委托是对象组合的特例。

重新设计的一般原因,以及解决的设计模式
1 通过显式地指定一个类来创建对象。创建对象指定类名将使你受特定实现的约束而不是接口的约束,应该间接地创建对象。
设计模式:Abstract Factory、Factory Method、Prototype
2 对特殊操作的依赖。当你为请求一个特殊的操作的时,完成该请求的方式就固定下来了。可以在编译时刻或者运行时刻方便地改变响应请求的方法。
//对某一个请求,其响应不是固化,而是可以改变的
设计模式:Chain of Responsibility、Command
3 对硬件和软件平台的依赖 外部的操作系统接口和应用编程接口在不同软硬件平台上是不一样的。
设计模式:Abstract Factory、Bridge
4 对对象的表示或者实现的依赖
对客户端隐藏这些信息。
设计模式:Abstract Factory、Bridge、Memento、Proxy
5 算法依赖
设计模式:Builder、Iterator、Strategy、Template Method、Visitor
6 紧耦合
松散耦合提高了一个类本身被复用的可能性,并且是系统更容易学习、移植、修改和扩展。
设计模式使用抽象耦合和分层技术来提高系统的松散耦合性。
设计模式:Abstract Factory、Command、Facade、Mediator、Observer、Chain of Responsibility。
7 通过生成子类来扩充功能,导致类爆炸。
使用对象组合技术和具体的委托技术,而不是定义已存在类的子类的方法。过多的对象组合会使设计难以理解。可以定义一个子类,将它的实例和已存在的实例进行组合。
8 不能方便的对类进行修改 不得不修改难修改的类,可能会影响已经存在的其他类
设计模式:Adapter Decorator Visitor

抱歉!评论已关闭.