学习设计模式,有助于写出可复用和可维护性高的程序
设计模式的原则是“找出 程序中变化的地方,并将变化封装起来”,它的关键是意图,而不是结构。
一、单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点
二、策略模式 定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。
三、代理模式 为一个对象提供一个代用品或占位符,以便控制对它的访问
四、迭代器模式 迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示。
五、发布—订阅模式 也称作观察者模式,定义了对象间的一种一对多的依赖关系,当一个对象的状态发 生改变时,所有依赖于它的对象都将得到通知
六、命令模式 用一种松耦合的方式来设计程序,使得请求发送者和请求接收者能够消除彼此之间的耦合关系
七、组合模式 是用小的子对象来构建更大的 对象,而这些小的子对象本身也许是由更小 的“孙对象”构成的。
八、模板方法模式 模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。
九、享元模式 享元(flyweight)模式是一种用于性能优化的模式,它的目标是尽量减少共享对象的数量
十、职责链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链 传递该请求,直到有一个对象处理它为止
十一、中介者模式 所有的相关 对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可
十二、装饰者模式 以动态地给某个对象添加一些额外的职责,而不会影响从这个类中派生的其他对象。
是一种“即用即付”的方式,能够在不改变对 象自身的基础上,在程序运行期间给对象动态地 添加职责
十三、状态模式 事物内部状态的改变往往会带来事物的行为改变。在处理的时候,将这个处理委托给当前的状态对象即可,该状态对象会负责渲染它自身的行为
十四、适配器模式 是解决两个软件实体间的接口不兼容的问题,对不兼容的部分进行适配
十五、外观模式 为子系统中的一组接口提供一个一致的界面,定义一个高层接口,这个接口使子系统更加容易使用