设计模式的原则

来源:互联网 发布:美工设计经理岗位职责 编辑:程序博客网 时间:2024/04/30 00:45

5大原则

单一职责原则:一个类的责任不要太大太多。

里氏代换原则:在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。

开放-封闭原则:对于扩展是开放的,对于更改是封闭的。修改原有类就说明类设计不够好。

依赖倒转原则:应该让程序都依赖抽象,而不是依赖具体。比如两个具体类互相耦合(互相调用)的设计就不够好,应该是耦合的双方都依赖于抽象而不是具体。有观察者模式。
每个类尽量继承自接口或抽象类。这就是依赖倒转的基本要求,有了抽象才可能依赖倒转。
类尽量避免从具体类派生,但也不是绝对的。
尽量不要覆盖基类的方法。如果基类是一个抽象类,而且这个方法已经实现,子类就尽量不要覆盖。类间依赖的是抽象,覆盖了抽象方法,对依赖的稳定性会产生一定的影响。

迪米特法则(最少知识原则):强调类之间应该松耦合。每个类尽量减少对其他类的依赖。
内聚性描述的是一个例程内部组成部分之间相互联系的紧密程度。
耦合性描述的是一个例程与其他例程之间的联系的紧密程度。软件开发的目标应该是创建这样的例程:内部完整,也就是高内聚而与其他例程之间的联系则是小巧,直接,可见,灵活的,这就是松耦合
有外观模式,中介模式。



六个创建型模式

 创建型模式隐藏了这些类的实例是如何被创建和放在一起,整个系统关于这些对象所知道的是由抽象类所定义的接口。这样,创建型模式在创建了什么,谁创建它,它是怎么被创建的,以及何时创建这些方面提供了很大的灵活性。

简单工厂模-Simple Factory Pattern【学习难度:★★☆☆☆,使用频率:★★★☆☆

工厂方法模式-Factory Method Pattern【学习难度:★★☆☆☆,使用频率:★★★★★

抽象工厂模式-Abstract  Factory Pattern【学习难度:★★★★☆,使用频率:★★★★★

单例模式-Singleton Pattern【学习难度:★☆☆☆☆,使用频率:★★★★☆

原型模式-Prototype Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆

建造者模式-Builder Pattern【学习难度:★★★★☆,使用频率:★★☆☆☆


七个结构型模式

 所关注的是如何将对象进行组合以便获取功能更加庞大的结构。一般情况下结构型模式都是使用继承机制将接口进行组合以及实现。

适配器模式-Adapter Pattern【学习难度:★★☆☆☆,使用频率:★★★★☆

桥接模式-Bridge Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆

组合模式-Composite Pattern【学习难度:★★★☆☆,使用频率:★★★★☆

装饰模式-Decorator Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆

外观模式-Facade Pattern【学习难度:★☆☆☆☆,使用频率:★★★★★

享元模式-Flyweight Pattern【学习难度:★★★★☆,使用频率:★☆☆☆☆

代理模式-Proxy Pattern【学习难度:★★★☆☆,使用频率:★★★★☆


十一个行为型模式

 所关注的重点是算法和对象之间的职责是如何分配的。

职责链模式-Chain of Responsibility Pattern【学习难度:★★★☆☆,使用频率:★★☆☆☆

命令模式-Command Pattern【学习难度:★★★☆☆,使用频率:★★★★☆

解释器模式-Interpreter Pattern【学习难度:★★★★★,使用频率:★☆☆☆☆

迭代器模式-Iterator Pattern【学习难度:★★★☆☆,使用频率:★★★★★

中介者模式-Mediator Pattern【学习难度:★★★☆☆,使用频率:★★☆☆☆

备忘录模式-Memento Pattern【学习难度:★★☆☆☆,使用频率:★★☆☆☆

观察者模式-Observer Pattern【学习难度:★★★☆☆,使用频率:★★★★★

状态模式-State Pattern【学习难度:★★★☆☆,使用频率:★★★☆☆

策略模式-Strategy Pattern【学习难度:★☆☆☆☆,使用频率:★★★★☆

模板方法模式-Template Method Pattern【学习难度:★★☆☆☆,使用频率:★★★☆☆

访问者模式-Visitor Pattern【学习难度:★★★★☆,使用频率:★☆☆☆☆


参考
史上最全设计模式导学目录(完整版)
0 0
原创粉丝点击