面向对象的设计的7大原则

简介: 面向对象的设计的7大原则

面向对象的设计原则(7大原则)

★ 1、开闭原则: 是总纲,告诉我们要对扩展开放,对修改关闭;

★ 2、里氏替换原则: 告诉我们不要破坏继承体系;

★ 3、依赖倒置原则:告诉我们不要破坏继承体系;

★ 4、单一职责原则: 告诉我们实现类/方法要职责单一;

★ 5、接口隔离原则: 告诉我们在设计接口的时候要精简单一;

★ 6、迪米特法则:告诉我们要降低耦合度;

★ 7、合成复用原则:告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。





1、开闭原则

是总纲,告诉我们要对扩展开放,对修改关闭;

■ 实现:

通过“抽象约束、封装变化”来实现开闭原则,即通过接口或者抽象类为软件实体定义一个相对稳定的抽象层,而将相同的可变因素封装在相同的具体实现类中。



2、里氏替换原则

告诉我们不要破坏继承体系;

■ 实现:

子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。



3、依赖倒置原则

告诉我们要面向接口编程;

■ 实现:

要面向接口编程,不要面向实现编程。


▷ 更加细致的要求:

(1)每个类尽量提供接口或抽象类,或者两者都具备。

(2)变量的声明类型尽量是接口或者是抽象类。

(3)任何类都不应该从具体类派生。

(4)使用继承时尽量遵循里氏替换原则。



4、单一职责原则

告诉我们实现类要职责单一;

■ 实现:

一个类只负责一项职责,一个方法只负责处理一项事情。



5、接口隔离原则

告诉我们在设计接口的时候要精简单一;

■ 实现:

客户端不应该被迫依赖于它不使用的方法。

● 和单一职责原则的区别:

它和单一职责原则差不多,一个接口只服务于一个子模块或业务逻辑。只是单一职责是侧重于约束类和方法。而借口隔离侧重约束接口。


▷ 更加细致的要求:

(1)接口尽量小,但是要有限度。一个接口只服务于一个子模块或业务逻辑。

(2)为依赖接口的类定制服务。只提供调用者需要的方法,屏蔽不需要的方法。

(3)了解环境,拒绝盲从。每个项目或产品都有选定的环境因素,环境不同,接口拆分的标准就不同,深入了解业务逻辑。

(4)提高内聚,减少对外交互。使接口用最少的方法去完成最多的事情。



6、迪米特法则(又叫作最少知识原则)

告诉我们要降低耦合度;

■ 实现:

“只与你的直接朋友交谈,不跟“陌生人”说话”。即如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。

□ 从依赖症和被依赖这的角度的实现:

• 从依赖者的角度来说,只依赖应该依赖的对象;

• 从被依赖者的角度说,只暴露应该暴露的方法。


▷ 更加细致的要求:

(1)在类的划分上,应该创建弱耦合的类。类与类之间的耦合越弱,就越有利于实现可复用的目标。

(2)在类的结构设计上,尽量降低类成员的访问权限。

(3)在类的设计上,优先考虑将一个类设置成不变类。

(4)在对其他类的引用上,将引用其他对象的次数降到最低。

(5)不暴露类的属性成员,而应该提供相应的访问器(set和get方法)。

(6)谨慎使用序列化(Serializable)功能.



7、合成复用原则(又叫组合/聚合复用原则)

告诉我们要优先使用组合或者聚合关系复用,少用继承关系复用。

■ 实现:

合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。


目录
相关文章
|
2月前
什么是面向对象领域软件设计的 Contravariance 概念
什么是面向对象领域软件设计的 Contravariance 概念
20 0
|
10月前
面向对象七大设计原则,看了必会(代码详细版)(中)
面向对象七大设计原则,看了必会(代码详细版)(中)
|
10月前
|
关系型数据库
面向对象七大设计原则,看了必会(代码详细版)(上)
面向对象七大设计原则,看了必会(代码详细版)(上)
|
10月前
面向对象七大设计原则,看了必会(代码详细版)(下)
面向对象七大设计原则,看了必会(代码详细版)(下)
|
12月前
|
程序员 测试技术
面向对象设计五个基本原则
只有聪明人才能看见的简介~( ̄▽ ̄~)~
80 0
|
12月前
|
关系型数据库
面向对象的设计(OOD)原则了解一下
面向对象的设计(OOD)原则了解一下
135 0
|
设计模式 Java 关系型数据库
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
|
设计模式 算法 Java
六大原则之外的设计原则|设计原则
在前面的几篇设计原则文章中,我们分别讲述了经典的六大设计原则。但是事实上,我们在开发中还有几个重要的设计原则,在这篇文章中,一并给大家讲述。
|
算法 关系型数据库 数据库
面向对象基本原则(3)- 最少知道原则与开闭原则
面向对象基本原则(1)- 单一职责原则与接口隔离原则 面向对象基本原则(2)- 里式代换原则与依赖倒置原则 面向对象基本原则(3)- 最少知道原则与开闭原则
|
uml
【程序设计】6大设计原则之依赖倒置
【程序设计】6大设计原则之依赖倒置
123 0
【程序设计】6大设计原则之依赖倒置