面向对象的设计原则
来源:互联网 发布:广电好还是网络电视好 编辑:程序博客网 时间:2024/06/14 22:56
单一职责原则——Single Responsibility Principle,SRP
定义:就一个类而言,应该只有一个引起它变化的原因。
里氏替换原则——Liskov Substitution Principle,LSP
定义:所有引用基类(父类)的地方必须能透明地使用其子类的对象。
注意:反过来不行,即子类出现的地方父类对象未必能出现。
依赖倒置原则——Dependency Inversion Principle,DIP
定义:抽象不应该依赖于细节,细节应当依赖于抽象。
具体实现之间不直接产生依赖关系,而是通过抽象(抽象类或接口)产生,即面向接口编程。而一个通过抽象注入其所依赖的对象就是依赖注入。
实现依赖注入的3种方式:
- 构造注入
- 设值注入(Setter注入)
- 接口注入(接口方法中的参数对象注入)
开闭原则——Open-Closed Principle,OCP
定义:一个软件实体如类、模块和函数应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。
注意:开闭原则并不意味着绝对不修改源代码,因为模块与模块之间肯定存在耦合(只是耦合程度的高低有所不同),因此必要的源码修改是正常的。
如何做到开闭原则?
定义系统的抽象层,再通过具体类来进行扩展。即如果需要修改系统的行为,无需对抽象层进行任何修改,只需要增加具体类实现新的业务功能即可,从而实现在不修改已有代码的基础上扩展系统的功能,实现拥抱变化。
接口隔离原则——Interface Segregation Principle,ISP
定义:客户端不应该依赖那些它不需要的接口,即使用多个专门的接口,而不是使用单一的总接口。
合成复用原则——Composite Reuse Principle,CRP
定义:尽量使用对象组合,而不是继承来达到复用的目的。
注意:
- 虽然继承可以重用代码,但继承也有缺点,因为继承是侵入式的。继承使得基类的实现细节暴露给了子类,对基类的修改会影响到子类。
- 合成复用是将一个对象作为另一个对象的一部分,被包含对象发生的变化对其所在的对象的影响不大。
- 合成复用是has-a的关系,而合成复用是is-a的关系。
迪米特法则——Law of Demeter,LoD 又称:最少知识原则——Least Knowledge Principle,LKP
定义:一个对象应该对其他对象有最少的了解。即一个类应该对需要耦合或调用的类知道得最少。
阅读全文
0 0
- 面向对象的设计原则
- 面向对象设计的原则
- 面向对象的设计原则
- 面向对象的设计原则!
- 面向对象的设计原则
- 面向对象的设计原则
- 面向对象的设计原则
- 面向对象的设计原则
- 面向对象设计的原则
- 面向对象的设计原则
- 面向对象的设计原则
- 面向对象设计的原则
- 面向对象的设计原则
- 面向对象的设计原则
- 面向对象设计的原则
- 面向对象设计的原则
- 面向对象设计的原则
- 面向对象设计的原则
- 修改Android Studio 中AVD安装路径的方法
- 获取myeclipse下载链接 &&www.genuitec.com
- 6-4 建立学生信息链表(20 分)——尾插建链表_题程序访问是越界——真是醉了,你自己跑下是会抛出异常的
- IDEA 安装以及基本配置
- c++资料
- 面向对象的设计原则
- Android Bitmap和YUV之间的相互转换
- JAVA SE回顾------数组
- 权限系统--通过shiro进行按钮及页面访问url的权限控制
- leetcode 232.Implement Queue using Stacks
- 错误处理error C4996: 'fopen': This function or variable may be unsafe
- 手机播放器界面
- JavaWeb初探
- Linux解压缩命令汇总