专栏首页张善友的专栏面向对象设计的SOLID原则

面向对象设计的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 条评论
登录 后参与评论

相关文章

  • 软件开发设计原则

    下文摘自http://www.csdn.net/article/2015-09-06/2825621 GoF(四人帮),传说中的四位大神们,他们联手搞出了一...

    张善友
  • 如何从VS2003升级到VS2008

    直接使用VS2008打开VS2003的Web项目,提示转换项目,开始转换项目,转换完的结果可能就不是你想要的了,VS2008把它给转换成WebSite模型了,像...

    张善友
  • Quartz.net官方开发指南 第五课: SimpleTrigger

    如果需要让任务只在某个时刻执行一次,或者,在某个时刻开始,然后按照某个时间间隔重复执行,简单地说,如果你想让触发器在2007年8月20日上午11:23:54秒执...

    张善友
  • Apache架构师的30条设计原则!

    Srinath 通过不懈的努力最终总结出了30条架构原则,他主张架构师的角色应该由开发团队本身去扮演,而不是专门有个架构师团队或部门。Srinath 认为架构师...

    开源社
  • Apache项目 架构师的30条设计原则

    本文作者叫 Srinath,是一位科学家,软件架构师,也是一名在分布式系统上工作的程序员。 他是 Apache Axis2 项目的联合创始人,也是 Apache...

    用户1516716
  • 图解你身边的 SOLID 原则

    这篇文章我们来简单介绍一下 SOLID 原则(这五个字母代表了面向对象编程的五个基本原则)

    savokiss
  • kubernetes关键概念总结

    每个service对应一个cluster IP,cluster IP对应的服务网段最初是在配置kube-apiserver、kube-controller-ma...

    charlieroro
  • 获取指定尺寸随机美图

    unsplash是一个美图资源站点,站点提供大量高质量美图,重点突出,极其美丽,是获取资源的不二选择,同时该站点还提供了一系列接口,在这里介绍一种获取随机美图的...

    宋天伦
  • FreeSql 已支持 .NetFramework 4.0、ODBC 访问

    FreeSql 开源发布快一年了,目前主仓库代码量 64118 行,用 git 命令统计的命令如下:

    梁规晓
  • 电商行业微信小程序有啥特色又给商家带来哪些机遇?

    小程序电商将成为2018年电商最大的趋势,去中心化社交电商时代来临。对于传统的电商来说,无疑是一个重大利好,可以从新打造一个全新的商业模式,在用户的微信里再开一...

    速成应用小程序开发平台

扫码关注云+社区

领取腾讯云代金券