1策略模式VS简单工厂
简单工厂只是生产对象,
策略模式是生产对象同时根据不同的对象使用其特定的方法
2原则
(1)单一职责
(2)依赖倒转
抽象不应该依赖细节,细节应该依赖于抽象
针对接口编程而不是针对现实编程
(3)开放封闭
可扩展,不修改
(4)迪米特法则
知道的越少活的越长
3工厂方法模式VS简单工厂模式
简单工厂模式的工厂是统一的大工厂
工厂模式的工厂将统一大工厂分为抽象和具体的工厂
4模板模式VS原型模式
模板模式利用的继承,整体架构不变。
模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤;
原型模式利用的克隆,从一个对象再创建另个一个可定制的对象,而且不需知道任何创建的细节。
5建造者模式VS装饰模式
建造者模式是指挥者用不同的方法(但是这个过程是一样的)创建某一对象
装饰模式是对某一对象添加不同的功能
6建造者模式VS模板模式
建造者模式是在模板模式的基础上增加了一个指挥者
7委托(观察者模式中)VS代理模式
委托是特殊的代理,委托是一种方法,可以有参数和返回值。
代理是一个对象。
本质都是替别人做事情。
8代理模式VS外观模式
代理对象代表一个单一对象而外观对象代表一个子系统;
代理的客户对象无法直接访问目标对象,由代理提供对单独的目标对象的访问控制,而外观的客户对象可以直接访问子系统中的各个对象,但通常由外观对象提供对子系统各元件功能的简化的共同层次的调用接口。
代理VS适配器
其实都是属于一种衔接性质的功能。代理是一种原来对象的代表,其他需要与这个对象打交道的操作都是和这个代表交涉。而适配器则不需要虚构出一个代表者,只需要为应付特定使用目的,将原来的类进行一些组合
9桥接模式VS适配器模式
桥接和适配器具有一些共同的特征,就是给另一对象提供一定程度的间接性,这样可以有利于系统的灵活性。但正所谓未雨绸缪,我们不能等到问题发生了,再去考虑解决问题,而是更应该在设计之初就想好应该如何做来避免问题的发生,桥接通常是在设计之初,就对抽象接口与它的实现部分进行桥接,让抽象与实现两者可以独立演化。
它们各自有各自的优点,并不能说设计之初就一定比设计之后的弥补要好,事实上,在现实中,早已设计好的两个类,过后需要它们统一接口,整合为一的事例也比比皆是。因此桥接和适配器是被用于软件生命周期的不同阶段,针对的是不同的问题,谈不上孰优孰劣。
10外观模式VS适配器模式
它们都是对现存系统的封装,有人说外观其实就是另外一组对象的适配器,这种说法是不准确的,因为外观定义的是一个新的接口,而适配器则是复用一个原有的接口,适配器是使两个已有的接口协同工作,而外观则是为现存系统提供一个更为方便的访问接口。如果硬要说外观是适配,那么适配器是用来适配对象的,而外观则是用来适配整个子系统的。也就是说,外观所针对的对象的粒度更大。