面向对象设计的几大原则

来源:互联网 发布:电子产品软件规格书 编辑:程序博客网 时间:2024/04/20 19:25

开-闭原则(Open-Close Principle): 一个软件实体应该对扩展开放,对修改关闭。我们做任何一个系统,客户的需求都是不断的变化的,因为客户部可能一下就能提出所有需求。这就要求我们预留需求扩展的空间,而不用修改原有的功能或方案。这就要求我们的系统做到对扩展开放、对修改关闭。

 

里氏代换原则(Liskov Substitution Principle): 一个软件实体使用的是一个基类的话,那么一定适用于其子类,而且它根本不能觉察出基类对象和子类对象的区别。也就是说,如果一个方法可以接受一个基类,则必然可以接受其子类。例:如果有method(BaseClass a),则method(SubClass b)必须成立。

 

依赖倒转原则(Dependence Inversion Principle): 它的两种表述分别为:一、抽象不应依赖于细节,细节应当依赖抽象(Abstractions should not depend upon detals,Details should depend upon abstractions);二、要针对接口编程,不要针对实现编程(Program to an interface,not to an implementation)。针对接口编程的意思是说:应当使用接口和抽象类进行变量的类型声明、参数的类型声明、方法的返回类型声明,以及数据类型的转换等。

接口隔离原则(Interface Segregation Principle):使用多个专门的接口比使用单一的总接口好。可以做到有效的角色划分,以避免出现臃肿的接口造成接口污染。

合成/聚合复用原则(Composite/Aggregate Reuse Principle):指的是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象委派达到复用已有功能的目的。而不是使用继承来达到对已有功能的复用。

迪米特法则(Law of Demeter):又叫最少知识原则,也就是说一个对象应该对其他对像有尽可能少的了解。和尽可能少的对象有直接关联,而应该通过已经有关联的对象去和新对象建立关联。

单一职责原则(Single Responsibility Principle):就是一个设计或实体应该只做一件事/只描述一个事物, 而不要弄得很混乱, 如果你专著于一件事, 一个模块,你会做得很出色。

 

原创粉丝点击