设计模式的一些思考

创建型模型:

1.工厂模式:

可以根据字符串来选择实例化那一个类,这样就可以更改类的时候只需要更改工厂类里面的参数。

2.单例模式:

使用一个实例,例如jieba分词使用只用一个jieba实例。

3.原型模式:

一本书有不同的书店销售,这个时候就可以使用原型模式,实例化一个然后进行deepcopy,更改书店名字。

4.建造者模式:

使用抽象,继承者必须实现抽象方法,还要用建造者类来管理方法的执行顺序(感觉跟其他的模式有冲突)

 

 

结构型模式:

1.适配器模式:

以前的代码没有方法和现在的方法不适配,可以添加一个类,把新的方法和以前的方法做一个映射。这样就解决这个问题。

2.桥接模式:

把两个类中不同的东西先写好,然后可以相同一起控制的东西抽象一个类来统一处理。

3.装饰器模式:

装饰器和建造者模式比较相似,可以进行对比学习。

建造者模式的内部建造流程是定好的,而装饰器模式是在外部自己定义的,自己组装的,所以装饰器模式是结构型模式而建造者模式是创建型模式。

4.代理模式:

代理模式控制类的实例化,通过代理来控制你是否能实例化某一个类,对某一个类有保护作用。

5.外观模式:

外观模式是对多个类中相同的方法进行一致性控制。

 

 

行为型模式:

1.责任链模式:

通过判断条件决定那个类处理这个问题,决定那个类处理是未知,可以自由的设置。

2.状态模式:

通过判断条件决定那个类处理这个问题,决定交给那个类继续处理是已经知道的不能自由控制。

责任链模式和状态模式有很高的相似性,两者的对比就跟装饰器模式跟建造者模式的对比一样,

装饰器模式类似责任链模式而建造者模式类似状态模式,只不过一个是在类里面,一个是多个类之间,所以前者属于结构型模式而后者属于行为型模式。

3.命令模式:

通过命令和调用者进行解耦可以通过中间类进行控制,这样避免调用者直接调用命令。

 

 

 

你可能感兴趣的:(设计模式)