首页 > 代码库 > 设计模式总结1---模式比较

设计模式总结1---模式比较

1.简单工厂模式----工厂模式-----抽象工厂模式

工厂模式的特点就是把相同基类的一组类放在一起管理

2.策略模式

策略模式就是对于各种策略(算法)进行提取,把各种策略都提取在Strategy接口用,

而客户端只需要使用某种策略就可以了。

3.装饰模式

把每个特定功能放在独立的类里面,并用类包装要装饰的对象。当需要执行特定的行为时,

可以按照特定的顺序进行包装对象了。

装饰模式就是提取各个功能类,通过装饰Decorate类,把各个功能类独立出来,从而可以是他们的顺序打乱。

4.代理模式

代理模式可以很好的剪切功能类的代码,是功能类对于客户端来说是透明的

而且方便等价功能类之间的切换。

5.原型模式

原型模式就是多个产品类的实例有绝大多的相同属性,但是比不完全相同。

使用原型模式就是把这些相同的属性提取出来

6.模板方法

模板方法就是抽象基类定义一些算法的骨架,而子类就去实现这些差别,就像做试卷一样,题目都是一样的,只有答案不一样。

7.外观模式

外观模式就是把功能类各种复杂的组合放在一起,由一个facade类组合起来,提供方法,屏蔽功能类和客户端类的交互

最常见的做法就是,当要操作一个功能的时候,很多时候我们会提供一个engine类来封装该功能。

8.建造者模式

建造者模式抽象出建造过程,也就是建造过程是Director类控制,而具体实现由不用的builder来实现细节。

9.观察者模式

观察者模式抽象出对某个subject状态的监听而改变的过程。也就是说当subject status发生变化时,ISubject接口会通知注册的observer类。

总结:设计模式目的是为了更好的实现面向对象的构架设计。

各种设计模式的特点都是抽象出一些相同的元素:

1.相同的过程,可以归结为method

2.相同的基类:可以使用三个工厂方法

3.相同的行为:算法不同,业务逻辑相同。可以使用策略模式和模板方法

4.特定的行为和关系,但是顺序可以随机:装饰模式

5.事物的属性相同:原型模式

6.功能类对客户端的支持是固定的:外观模式

7.事物的构建过程是相同的:建造者模式

8.事物对于主题的状态变化做相同的响应:观察者模式

 

 

设计模式总结1---模式比较