首页 > 代码库 > 设计原则20170710

设计原则20170710

一、单一职责原则

一个类或一个函数只做一件事情

 

 

二、里氏替换原则

所有父类出现的地方,子类都可以替换(在类中调用其他类务必要使用父类或者接口)

采用里氏替换原则的目的就是增强程序的健壮性

 

 

三、依赖倒置原则

也就是面向接口编程

 

 

四、接口隔离原则

接口隔离原则是对接口进行规范约束,尽量使用多个专门的接口(专门的接口是指:提供给每个模块的都应该是单一的接口,提供给几个模块就应该有几个接口),而不是建立一个庞大的臃肿的接口

 

 

五、迪米特原则

要求类与类之间尽可能没有耦合关系(低耦合)。

具体要求:

1.一个类应该对自己需要耦合或调用的类知道的最少(即提供方的public方法尽量少)。只需知道你(被耦合或调用的类)提供的public方法,至于你内部如何复杂和我没关系,我也不关心。

2.一个类只和朋友类交流,

朋友类定义:出现在成员变量,方法的输入输出参数中的类称为成员朋友类,而出现在方法内部的类不属于朋友类

 

 

六、开闭原则(最基础也是最核心的原则,前面五种原则都是开闭原则的具体形态)

1.含义:(模块、抽象、类和方法等软件实体)对扩展开放,对修改关闭

扩展含义:(一般通过子类或实现接口)扩展

修改含义:修改已有的代码

 

2.开闭原则可以提高复用性,也是面向对象的要求

 

3.具体如何应用开闭原则:

一般通过实现接口或继承抽象类(继承实现类也可以,通过子类覆写方式)来扩展,不修改已有的代码,软件实体上层保持不变,这样风险就小了

1).抽象约束

通过接口或者抽象类约束一组可能变化的行为,实现对扩展开放

包含三层含义:

I.通过接口或者抽象类约束扩展,不允许出现在接口或抽象类中不存在的public函数

II.参数类型,引用对象尽量使用接口或抽象类,而不是实现类

III.抽象层尽量保持稳定,一旦确定即不允许修改

要实现对扩展开发,首要的条件就是抽象约束

 

2).封装变化

I.将相同的变化封装到一个接口或抽象类中

II.将不同的变化封装到不同的接口或抽象类中,不应该有两个不同的变化出现在同一个接口或抽象类中。

后续讲的23个设计模式都是从各个不同的角度对变化进行封装的。

 

3).使用配置参数控制程序行为,减少重复开发

 

 

 

上述对六大设计原则的阐述应该已经很清晰,用专门的例子进而讲解设计原则应当不需要了,而且在实际运用或者具体大的例子中更能体现,所以在后续设计模式中会再次说明这些设计原则

设计原则20170710