参考资料:设计模式【百度百科】http://baike.baidu.com/view/66964.htm?fr=aladdin
设计模式归根到底还是【代码复用】,
重要原则:
1) 开闭原则:Software entities should be open for extension, but closed formodification.
2) 里氏代换原则:继承复用的基础,子类override方法的访问权限不能小于父类对应方法的访问权限。
3) 依赖倒转原则:抽象不应当依赖于细节,尽量引用层次高的类。
4) 接口隔离原则:每一个接口应该是一种角色,不干不该干的事。
5) 合成/聚合复用原则:http://www.cnblogs.com/menglin2010/archive/2012/04/09/2435785.html
为什么尽量不要使用类继承而使用合成/聚合?
① 对象的继承关系在编译时就定义好了,所以无法在运行时改变从父类继承的子类的实现
②子类的实现和它的父类有非常紧密的依赖关系,以至于父类实现中的任何变化必然会导致子类发生变化
③当你复用子类的时候,如果继承下来的实现不适合解决新的问题,则父类必须重写或者被其它更适合的类所替换这种依赖关系限制了灵活性, 并最终限制了复用性
6) 最少知识原则:也叫迪米特法则,即一个对象应对其他对象有尽可能少的了解。
-
创建型模式:单例模式、抽象工厂模式、建造者模式、工厂模式、原型模式。
-
结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。
-
行为型模式:模版方法模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式。