面向对象设计的SOLID原则

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

SRP

The Single Responsibility Principle

单一责任原则

OCP

The Open Closed Principle

开放封闭原则

LSP

The Liskov Substitution Principle

里氏替换原则

DIP

The Dependency Inversion Principle

依赖倒置原则

ISP

The Interface Segregation Principle

接口分离原则

Steve Smith在5月份的微软TechED 2009上有个SOLIDify Your ASP.NET MVC的讲座, derick.baileySOLID Development Principles – In Motivational Pictures很好的解释了SOLID原则。

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

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

里氏替换原则 当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系

依赖倒置原则 1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 2. 抽象不应该依赖于细节,细节应该依赖于抽象

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小小挖掘机

数据城堡参赛代码实战篇(三)---我们来探究一个深奥的问题!

每天12点是小编最激动的时候,因为自己写的帖子又可以与大家见面啦,昨天把帖子传到某个大神组织的数据挖掘交流群时,某挖掘机朋友问了小编一个深刻的问题,题目看似很简...

35650
来自专栏C/C++基础

C++字节流与二进制字符串相互转换(一个简单的明文加解密程序)

作为一名程序猿,在我们写文章、文字片段或者一句简短的话语,对外发表或者告之他人时,是否想过带点新意和创意呢?如果想过,那么这篇文章会给你一点帮助。

13620
来自专栏Java后端技术栈

开发中我们需要遵循的几个设计原则!

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐...

10020
来自专栏木可大大

面向对象设计必须遵循的几条原则

我们应该采用何种方法去应对需求变化呢?首先,在方法论层面我们应该采用敏捷开发;其次,在代码层面,使用OOD(Object-Oriented Design,面向对...

10940
来自专栏微信公众号:Java团长

开发中我们需要遵循的几个设计原则!

在软件开发中,前人对软件系统的设计和开发总结了一些原则和模式, 不管用什么语言做开发,都将对我们系统设计和开发提供指导意义。本文主要将总结这些常见的原则和具体阐...

10610
来自专栏IMWeb前端团队

写给前端专家的一封公开信:关于分号(翻译)

本文作者:IMWeb frankfang 原文出处:IMWeb社区 未经同意,禁止转载 原文 Sean Silva 给我发来一封信: 我最近在浏览你...

19870
来自专栏北京马哥教育

Python科学计算之Pandas

在我看来,对于Numpy以及Matplotlib,Pandas可以帮助创建一个非常牢固的用于数据挖掘与分析的基础。而Scipy(会在接下来的帖子中提及)当然是另...

12800
来自专栏Ryan Miao

java设计模式学习(-)

在我目前看来博客的作用就是笔记了,所谓的原创也仅仅是复制了别人的东西实践了一下,但为了学习记忆确实要记录下来。在这里感谢网络各处的资源,原谅我对资源的索取。 接...

34890
来自专栏贾老师の博客

【笔记】软件工程设计原则

12910
来自专栏Java技术栈

Java架构师必须知道的 6 大设计原则

原文:www.cnblogs.com/pengdai/p/9151800.html

16930

扫码关注云+社区

领取腾讯云代金券