设计模式
如果把类理解为实现某个功能的器具,把接口理解为一种行为的抽象规范。把软件理解为机器,那么可以这样理解设计模式。
器具的创建:
工厂模式:有一个工厂,这个工厂专门生产器具,你只要传入你的要求,就会给你一个器具。
单例模式:有一种器具在机器里只可以存在一个,比如心脏,那么就必须保证这个器具只能存在一个。
原型模式:器具的打造太耗费时间了,但是直接拷贝却很快。
建造者模式:用户传入具体器具的参数,然后返回符合这种参数的器具的实例。
而从器具之间的关系来看,有这些模式。
代理模式:有的器具比较娇贵,只能通过代理器具与其他器具交互。
适配器模式:比如一个器具的把手太短了,可以通过适配器把这个把手加长。
桥接模式:我们可以把一个复杂的器具,分解伟多个小的器具,然后通过随意组合的模式来实现这个复杂的器具。
装饰者模式:与代理模式的区别在于,代理模式的目的是保护器具,而这个是扩展器具。
外观模式:通过一个简单的器具,将原本复杂的操作隔离在内部,也叫屏蔽复杂度。
享元模式:器具太多,耗费太多的电,如果可以共用一些器具,就可以少用一些电。
组合模式:使多个类似的器具组合在一起,在外部看来,无论是一个还是多个,其使用方法一致。
观察者模式:观察者器具放入被观察者器具内部,一到被观察者器具的状态发生了改变,则被观察者器具就调用观察者器具指定的方法。
中介者模式:观察者模式的优化。