设计模式的六大原则

1、单一职责原则


一个类只负责一项职责。不要存在多于一个导致类变更的原因。


单一职责原则的优点:降低类的复杂度,提高类的可读性,提高系统的可维护性,降低系统由于变更引起的风险。

2、里氏替换原则


所有引用基类的地方必须能透明地使用其子类的对象。


更通俗的说法是:子类可以扩展父类的功能,但不能改变父类原有的功能。 
它具有以下4层含义: 
● 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。 
● 子类中可以增加自己特有的方法。 
● 当子类的方法重写父类的方法时,方法的形参要比父类方法的形参更宽松。 
● 当子类的方法实现父类的抽象方法时,方法的返回值要比父类更严格。

3、依赖倒置原则


高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节,细节应该依赖抽象。


依赖倒置原则的核心思想是面向接口编程。 
在实际编程中,我们一般需要做到以下3点: 
● 低层模块尽量都要有抽象类或接口,或者两者都有。 
● 变量的声明类型尽量是抽象类或接口。 
● 使用继承时遵循里氏替换原则。

4、接口隔离原则


客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。


接口隔离原则的含义是:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少。 
● 接口尽量小,但是要有限度。过分细化会造成接口数量过多,使设计复杂化。所以细化一定要适度。 
● 为依赖接口的类定制服务,只暴露给调用的类它需要的方法,它不需要的方法则隐藏起来。 
● 提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。

5、迪米特法则


一个对象应该对其他对象保持最少的了解。


尽量降低类与类之间的耦合。只与直接的朋友通信。

6、开闭原则


对扩展开放,对修改关闭。


当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。这里的软件实体指的是类、模块和函数等。 
开闭原则主要是想告诉我们“用抽象构建框架,用实现扩展细节”。 
而要想实现“用抽象构建框架,用实现扩展细节”,就需要充分实践前5条原则: 
单一职责原则告诉我们实现类要职责单一; 
里氏替换原则告诉我们不要破坏继承体系; 
依赖倒置原则告诉我们要面向接口编程; 
接口隔离原则告诉我们在设计接口的时候要精简单一; 
迪米特法则告诉我们要降低耦合。 
所以说,开闭原则是总纲,他告诉我们要对扩展开放,对修改关闭。

posted @ 2016-11-23 16:44  Hi~拇指  阅读(198)  评论(0编辑  收藏  举报