博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面象对象设计原则简介
阅读量:6799 次
发布时间:2019-06-26

本文共 979 字,大约阅读时间需要 3 分钟。

一、面向对象设计原则

  • 单一职责原则(SRP)
  • 开闭原则(OCP)
  • 里氏替换原则(LSP)
  • 依赖倒置原则(DIP)
  • 接口隔离原则(LSP)
  • 迪米特原则(LOP)
  • 组合/聚合复用原则(CARP)

 

二、单一职责原则(SRP)

  • 定义:系统中每一个类都应该中有一个职责
  • 优点:高内聚、低耦合
  • 高内聚是指一个类或者功能模块由相关性很强的代码组成,类或者模块很难拆分,它只负责一项任务
  • 耦合指的是类之间或模块之间的相互联系,耦合度越高,说明联系越紧密,独立性越差,我们越难拆分相反,耦合度越低,联系越松散独立性越好,可重用的可能性越大

按照单一职责开发可以缩小单个类的规模,降低耦合度,并提高类的复用性

三、开闭原则(OCP)

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

优点:

  • 适应性和灵活性
  • 稳定性和延续性
  • 可复用性与可维护性

四、里氏替换原则(LSP)

  •  定义:在任何父类出现的地方都可以用其子类来替换且不影响功能。它是对开闭原则的扩展。
  • 里氏替换原则所表述的就是在一个继承体系中的对象应该具有共同的外在特征。
  • 里氏替换原则主张我们使用“抽象”和“多态”将设计中的静态结构改为动态结构。
  • 对象的多态性其实就是最好的里氏替换原则的例子

五、依赖倒置原则(DIP)(控制反转)

  •  定义:高层模块不应该依赖底层模块,两者都应该依赖抽象; 抽象不应该依赖细节;细节应该依赖抽象。
  • 接口负责公共方法的声明,抽象类负责公共方法的实现,和开闭原则相似,它们都是在程序增加新功能时不去修改原有的程序
  • 面向接口编程
  • 好处:提高程序的稳定性,可维护性,可扩展性。

六、接口隔离原则(LSP)

 定义:使用多个专门的接口比使用单一的总接口要好

优点:不强迫新功能实现不需要的方法

七、迪米特原则(LOP)(最少知识原则)

 定义:一个对象应当对其他对象尽可能少的了解,也尽可能的被更少的对象了解

当一个类需要调用另一个类的某个方法时,通过中介类实现.

尽量降低访问级别

优点:降低耦合

缺点:过度使用,通信效率降低,产生大量的中介类

不能过度使用

八、组合/聚合复用原则(CARP)

 定义:优先使用组合,使用系统更灵活,其次才考虑继承,达到复用的目的

优点:

  • 组合复用所需要的依赖较少
  • 组合复用可以在运行时间内动态进行,新对象可以动态的引用与成分对象类型相同的对象

缺点:使用组合利用建造的系统会有较多的对象需要管理

转载地址:http://txego.baihongyu.com/

你可能感兴趣的文章
Linux用户和组管理
查看>>
Javascript模块化编程
查看>>
内存分配 、同步、互斥
查看>>
js 删除数组下标
查看>>
互联网创业者,你的域名被“注册”了吗?
查看>>
tomcat 设置编码
查看>>
javadoc工具生成自己的API文档
查看>>
微服务框架下的思维变化-OSS.Core基础思路
查看>>
android viewHolder处理listView滑动
查看>>
JAVA泛型——转
查看>>
Python 中因urllib2/urlib遭遇的进程阻塞问题
查看>>
C++初学者请进--------关于学好C++的经典资料汇总
查看>>
checkbox设置复选框的只读效果不让用户勾选
查看>>
Golang 源码阅读 os.File
查看>>
IE 6 下出现 双倍距离 以及解决方案
查看>>
LayaAir 自旋转的小球跟随鼠标移动
查看>>
linux nginx 指定目录不可执行php文件
查看>>
django环境搭建
查看>>
共享 iOS沙盒文件管理
查看>>
MIME
查看>>