设计模式

2018-06-25  本文已影响0人  lxtyp

六大设计原则

单一职责原则

Single Responsibility Principle
定义:应该有且仅有一个原因引起类的变更。
单一职责适用于接口、类,同时也适用于方法。
优势:
类的复杂性降低,实现什么职责都有清晰明确的定义;
可读性提高;
可维护性提高;
变更引起的风险性降低。

里氏替换原则

Liskov Substitution Principle
所有引用基类的地方必须能透明的使用其子类的对象。
4层含义:
1,子类必须完全实现父类的方法;
2,子类可以有自己的个性;
3,覆盖或实现父类的方法时输入参数可以被放大;
4,覆盖或实现父类的方法时输出结果可以被缩小。

优势:
代码共享,减少创建类的工作量,每个子类都拥有父类的方法和属性;
提高代码的重用性;
子类可以形似父类,但又异于父类;
提高代码的可扩展性;
提高产品或项目的开放性。
缺点:
继承时侵入性的,只要继承,就必须拥有父类的所有属性和方法;
降低代码的灵活性;
增强了耦合性。

依赖倒置原则

Dependence Inversion Principle
依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,降低并行开发引起的风险,提高代码的可读性和可维护性。
三层含义
1,高层模块不应该依赖低层模块,两者都应该依赖其抽象;
2,抽象不应该依赖细节;
3,细节应该依赖抽象。

三种写法
1,构造函数传递依赖对象;
2,Setter方法传递依赖对象;
3,接口声明依赖对象。

本质是通过抽象(接口或抽象类)使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。我们需要遵循的几个规则:
1,每个类尽量都有接口或抽象类,或者两者都有;
2,变量的表面类型尽量。是接口或者是抽象类;
3,任何类都不应该从具体类派生;
4,尽量不要覆盖基类的方法;
5,结合里氏替换原则使用

接口隔离原则

Interface Segregation Principle
四层含义
1,接口要尽量小;
2,接口要高内聚;
3,定制服务;
4,接口设计是有限度的。

迪米特法则

Law of Demeter
也称为最少知识原则
一个对象应该对其他对象有最少的了解。
四层含义
1,只和朋友交流;
2,朋友间也是有距离的;
3,是自己的就是自己的;
4,谨慎使用Serializable。

开闭原则

Open Closed Principle
一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。

工厂模式

抽象工厂模式

单例模式

建造者模式

原型模式

适配器模式

桥接模式

过滤器模式

组合模式

装饰器模式

外观模式

享元模式

代理模式

责任链模式

命令模式

解释器模式

迭代器模式

中介者模式

备忘录模式

观察者模式

状态模式

空对象模式

策略模式

模板模式

访问者模式

上一篇下一篇

猜你喜欢

热点阅读