博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OO六大原则
阅读量:4659 次
发布时间:2019-06-09

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

 

在OO设计领域,我们知道前人总结了不少的经验,许多的经验在现代软件工程过程中已经被认为是原则来遵守。下面笔者摘抄几项下文涉及到的OO原则的定义。

 

OCP(开闭原则,Open-Closed Principle):一个软件的实体应当对扩展开放,对修改关闭。我的理解是,对于一个已有的软件,如果需要扩展,应当在不需修改已有代码的基础上进行。

DIP(依赖倒转原则,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。我的理解是,对于不同层次的编程,高层次暴露给低层次的应当只是接口,而不是它的具体类。

A. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象

B. 抽象不应该依赖于细节,细节应该依赖于抽象

LoD(迪米特法则,Law of Demeter):只与你直接的朋友通信,而避免和陌生人通信。 众所周知类(或模块)之间的通信越少,耦合度就越低,从而更有利于我们对软件的宏观管理。老子论“圣人之治”有相同的思想,《老子》云:“是以圣人之治, 虚其心,实其腹,弱其志,常使民无知无欲。”,又云:“小国寡民,邻国相望,鸡犬之声相闻,民至老死,不相往来。”。佩服我们的老祖宗,N千年前就想到了 西方N千年后才想到的东西,同时也佩服《java与模式》的作者阎宏,可以用中国传统哲学思想这么生动的说明这一软件设计原则。

 

LSP(里氏替换原则)所有引用基类的地方必须能透明地使用其子类的对象。

 

 

SRP(单一职责原则)只能让一个类有且仅有一个职责。

ISP(接口分离原则)接口的设计应该遵循最小接口原则,不要把用户不使用的方法塞进同一个接口里。

转载于:https://www.cnblogs.com/yonge/archive/2011/11/25/2263731.html

你可能感兴趣的文章
笔记本安装SSD固态硬盘详细的优化设置
查看>>
批处理语法介绍
查看>>
FFmpeg 基础库(三)模块组成
查看>>
Linq 查询 与方法调用
查看>>
iOS开源项目(旧)
查看>>
winform的datagridview控件滚动更新数据
查看>>
java中Object类 源代码详解
查看>>
开源控Meteor的个人资料
查看>>
kafka在zookeeper中的存储结构
查看>>
linux上FTP服务器搭建
查看>>
.net 使用AgsXMPP与openfire连接,实现跨平台信息流通。
查看>>
DP动态规划【专辑@AbandonZHANG】
查看>>
Android TextureView简易教程
查看>>
fatal: the remote end hung up unexpectedly
查看>>
Delphi-操作剪贴板
查看>>
hdu 1029
查看>>
Docker 容器的网络连接 & 容器互联
查看>>
吾爱专题脱壳练习----压缩壳练习之三
查看>>
LeetCode -- Palindrome Linked List
查看>>
栈应用——逆波兰式表达式的值
查看>>