博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象设计的SOLID原则【转】
阅读量:6082 次
发布时间:2019-06-20

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

S.O.L.I.D是面向对象设计和编程(OOD&OOP)中几个重要编码原则(Programming Priciple)的首字母缩写。

SRP 单一责任原则
OCP   开放封闭原则
LSP 里氏替换原则
DIP 依赖倒置原则
ISP 接口分离原则
LKP The Least Knowledge Principle 迪米特法则/最少知识原则

 

 

在5月份的微软TechED 2009上有个的讲座, 的很好的解释了SOLID原则。

单一责任原则: 

当需要修改某个类的时候原因有且只有一个(THERE SHOULD NEVER BE MORE THAN ONE REASON FOR A CLASS TO CHANGE)。换句话说就是让一个类只做一种类型责任,当这个类需要承当其他类型的责任的时候,就需要分解这个类。 
 

开放封闭原则 
软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。

 

里氏替换原则 

当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系 
  
依赖倒置原则
1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 
2. 抽象不应该依赖于细节,细节应该依赖于抽象 

接口分离原则 
不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。 

这几条原则是非常基础而且重要的面向对象设计原则。正是由于这些原则的基础性,理解、融汇贯通这些原则需要不少的经验和知识的积累。上述的图片很好的注释了这几条原则。

 另:

迪米特法则,又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话,talk only to your immediate friends

 

朋友圈的确定

 

“朋友”条件:

 

1)当前对象本身(this)

 

2)以参量形式传入到当前对象方法中的对象

 

3)当前对象的实例变量直接引用的对象

 

4)当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友

 

5)当前对象所创建的对象

 

任何一个对象,如果满足上面的条件之一,就是当前对象的“朋友”;否则就是“陌生人”。
 

 

原文地址:http://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html

 

关于面向对象、设计原则与设计模式的关系,可以看我

你可能感兴趣的文章
06 管理者意味着什么
查看>>
android权限大全
查看>>
微软必应借PK谷歌突围中国搜索市场
查看>>
刚子微信扯扯葱蒜
查看>>
[深入浅出Cocoa]iOS网络编程之NSStream
查看>>
HDOJ 4607 - Park Visit
查看>>
关于PHP 缓冲区
查看>>
分布式EventBus的Socket实现 - 发布订阅
查看>>
unity动态加载(翻译) .
查看>>
WIP_DISCRETE_JOBS.STATUS_TYPE
查看>>
一 VC2008环境中ICE的配置
查看>>
Win7无法添加用户的问题
查看>>
DCI:DCI学习总结
查看>>
- Shell - sort处理大文件(页 1) - ChinaUnix.net
查看>>
项目管理--执行过程组
查看>>
数据访问与sql语句的管理(一)
查看>>
前端开发框架
查看>>
风 记忆
查看>>
ARM中的PC和AXD的PC
查看>>
[转]关于ios 推送功能的终极解决
查看>>