设计模式总结
1、迪米特法则(Demeter Principle):
理解:最少知道原则。类之间要尽量减少关联,降低类之间的耦合性。如需要关联,可通过中介类来转达。
实现:外观(Facade)、中介(Mediator)
2、开放-封闭原则():
理解:对系统添加新的功能时不能影响到原有的功能。
实现:a、多使用抽象类;b、多使用接口;
3、依赖倒置原则(Dependence Inversion Principle):
理解:要依赖于抽象,不要依赖于具体;即要针对接口编程,不要针对实现编程。
实现:三层架构,针对接口分层
4、接口隔离原则(Interface Segregation Principle):
理解: 继承一个有很多方法的接口不如继承很多有一个方法的接口,这样不用去实现那些不需要的方法,可以选择自己需要的接口去继承。
实现:
5、里氏代换原则(Liskov Substitution Principle):
理解:关于该不该使用继承上,如果在一个系统中,子类应该能够替换任何基类可以出现的地方,经过替换后代码还能正常工作,子类还可以扩展基类功能。这种情况下可以使用继承。
6、合成复用原则(Composite Reuse Principle):
理解:有两种办法可以实现代码复用:一、合成\聚合 ; 二、继承。
我们应该尽量使用 合成\聚合 来复用代码,除非满足下面几个条件才可以使用继承。
a、类满足is-A条件,而不是has-A ;
b、类永远不会变成另一个类的子类,如果不能肯定以后不会变成另一类的子类,就不要用继承(因为不能多继承);
c 、类可以扩展超类,但不能置换或注销掉超类;
1.创建型模式
因为对象的创建会消耗掉系统的很多资源,所以单独对对象的创建进行研究,从而能够高效地创建对象就是创建型模式要探讨的问题。这里有6个具体的创建型模式可供研究,它们分别是:
简单工厂模式(Simple Factory);
工厂方法模式(Factory Method);
抽象工厂模式(Abstract Factory);
创建者模式(Builder);
原型模式(Prototype);
单例模式(Singleton)。
说明:严格来说,简单工厂模式不是GoF总结出来的23种设计模式之一。
2.结构型模式
在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是:
外观模式(Facade);
适配器模式(Adapter);
代理模式(Proxy);
装饰模式(Decorator);
桥模式(Bridge);
组合模式(Composite);
享元模式(Flyweight)。
3.行为型模式
在对象的结构和对象的创建问题都解决了之后,就剩下对象的行为问题了,如果对象的行为设计的好,那么对象的行为就会更清晰,它们之间的协作效率就会提高,这里有11个具体的行为型模式可供研究,它们分别是:
模板方法模式(Template Method);
观察者模式(Observer);
状态模式(State);
策略模式(Strategy);
职责链模式(Chain of Responsibility);
命令模式(Command);
访问者模式(Visitor);
调停者模式(Mediator);
备忘录模式(Memento);
迭代器模式(Iterator);
解释器模式(Interpreter)。