面向对象的五大基本原则(SOLID)

  • 概述
    • SRP(Single responsibility principle): 单一职责原则
    • OCP: 开闭原则。

概述

出自《架构整洁之道》这本书,参考:《架构整洁之道》 架构笔记, 码了,回头看一下。简单来说 SOLID就是面向对象编程的五大基本原则的英文缩写的首字母连起来。

  1. SRP(Single responsibility principle): 单一职责原则。
  2. OCP: 开闭原则。
  3. LSP: 里氏替换原则。
  4. ISP: 接口隔离原则。
  5. DIP: 依赖反转原则
    下面对这些原则进行逐一详细介绍。(还没有写完,后面补)

SRP(Single responsibility principle): 单一职责原则

百度百科参考

一个类或者模块应该有且只有一个改变的原因。

碎碎念:
反射是代码可以访问、修改自己元数据的能力,其中元数据包括方法数据和属性数据,FuncData——和PropData(类内所有属性的数据表),他们被合称为MetaData参考)
c#的attribute特性 提供了一种扩展元数据的方法,可以用来做面向切面的编程。
AOP:面向切面的编程
C# / Pattern】C#中利用Attribute实现AOP(面向切面编程)
c# attribute

OCP: 开闭原则。

面向对象的五大基本原则(SOLID)相关推荐

  1. 随笔27 面向对象的五大基本原则

    面向对象的五大基本原则 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化.单一职责原则可以看做是低耦合.高内聚在面向对象原则上 ...

  2. JAVA面向对象的五大基本原则

    文章目录 原则一:单一职责原则 原则二:开放封闭原则 原则三:LisKov替换原则 原则四:依赖倒置原则 原则五:接口隔离原则 了解面向对象的思想时,之前仅仅了解了面向对象的三大特性,最近才发现原来面 ...

  3. 面向对象的五大基本原则

    面向对象的三大特性:封装.继承.多态 面向对象的七(或五大原则,前五项)大基本原则:单一职责原则(SRP) .开放封闭原则(OCP)  .里氏替换原则(LSP).  依赖倒置原则(DIP).  接口隔 ...

  4. 学习Java编程面向对象的五大基本原则

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心.围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范.继承是类与类之间联系的一种形式.而多态 ...

  5. 面向对象 三大特性 五大基本原则

    2019独角兽企业重金招聘Python工程师标准>>> 以前一直认为程序中的类有使用到封装,继承,多态就是面向对象设计,其实不然 封装,继承,多态只是面向对象的三大特性,但是在设计程 ...

  6. 面向对象三大基本特征及五大基本原则介绍

    目录 前言 一.面向过程和面向对象区别 二.面向对象的三大基本特征:封装.继承.多态 1.封装 2.继承 3.多态 三.面向对象的五大基本原则 1.单一职责原则(SRP) 2.开放封闭原则(OCP) ...

  7. 面向对象的五大原则与IOC

    面向对象的五大基本原则 单一职责原则(SRP) 开放封闭原则(OCP) 里氏替换原则(LSP) 依赖倒置原则(DIP) 接口隔离原则(ISP) 单一职责原则(SRP) 一个类应该仅有一个引起它变化的原 ...

  8. 面向对象封装继承多态五大基本原则魔法方法反射

    目录 面向对象 三大基本特征 五大基本原则 魔法方法 反射 面向对象 什么是面向对象 使用模板的思想,将世界万事万物使用对象来表示一个类型 面向对象和面向过程的区别: 面向对象的不就是使用程序处理事情 ...

  9. 面向对象的三大基本特性,五大基本原则。

    三大特性是:封装,继承,多态 所谓封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.封装是面向对象的特征之一,是对象和类概念的主要特性 ...

最新文章

  1. Edit Control读取与写入踩坑实例与使用方法
  2. java rest tomcat_java – REST服务返回HTTP 204(Tomcat / Linux)
  3. 再向“乡镇青年”下沉,“资讯界拼多多”趣头条也难成为另一个拼多多
  4. emc整改措施及案例_12.5EMC一点通||EMC整改措施
  5. python xlrd使用_python使用xlrd 操作Excel读写
  6. extjs 实现 NumberField 即时计算
  7. spring集成mybatis后怎么在控制台打印sql语句
  8. 如何使用Beyond Compare中心窗格
  9. centos7 配置阿里yum源
  10. linux设置ipsan_Linux挂载IPSAN和FCSAN操作
  11. 【教育心理学】学习理论流派——行为主义学习理论
  12. Eclipse 绿豆沙
  13. UE4学习笔记:学习UE4中的UMG(图形UI设计器)工具(一): Widget Blueprint控件蓝图
  14. html网页背景图片 菜鸟教程,CSS3 背景
  15. winform高效导出Excel带格式设置
  16. excel表格内容合并的技巧?
  17. mysql根据字长查询_MYSQL常用查命令
  18. Win10 任务栏透明工具-TranslucentTB
  19. 读源码品Caffe - 结构流程篇
  20. 深度linux qq下载,Deepin内置的软件商店里收录QQ for Linux版,方便用户安装

热门文章

  1. 怎么才能在Mac电脑提醒事项添加提醒事项
  2. 【代码随想录】Day38~Day46动态规划
  3. 笔记本键盘进水和键帽问题解决
  4. kibana发音 logstash发音 ElasticSearch发音
  5. duoyinzi_pinyin
  6. C++ split() 函数
  7. 两次拉格朗日中值证明曲线凹凸性定理_2016514
  8. 【经营智慧】004.做一个善于发挥自己才智的人
  9. loadsh的常用方法
  10. python3一键上网认证的图形化exe程序(上篇)