面向对象的五大基本原则

  • 单一职责原则(Single-Resposibility Principle):一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向对象原则上的引申,将职责定义为引起变化的原因,以提高内聚性来减少引起变化的原因。
  • 开放封闭原则(Open-Closed principle):软件实体应该是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭的。
  • Liskov替换原则(Liskov-Substituion Principle):子类必须能够替换其基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。
  • 依赖倒置原则(Dependecy-Inversion Principle):依赖于抽象。具体而言就是高层模块不依赖于底层模块,二者都同依赖于抽象;抽象不依赖于具体,具体依赖于抽象。
  • 接口隔离原则(Interface-Segregation Principle):使用多个小的专门的接口,而不要使用一个大的总接口

转载于:https://www.cnblogs.com/lyr612556/p/7828010.html

随笔27 面向对象的五大基本原则相关推荐

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

    面向对象的五大基本原则(SOLID) 概述 SRP(Single responsibility principle): 单一职责原则 OCP: 开闭原则. 概述 出自<架构整洁之道>这本书 ...

  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. java中建立单链表_Java数据结构,单链表的建立
  2. PostgreSQL 10.1 手册_部分 II. SQL 语言_第 8 章 数据类型_8.6. 布尔类型
  3. 深入理解 Java内存模型
  4. Maven-atguigu
  5. HTML鼠标悬停图片置顶,jquery实现鼠标悬浮停止轮播特效
  6. Magento: 添加first name 和 last name到newsletter Add additional fields to your newsl
  7. 新冠隔离让你家Wifi变慢?全球网络大塞车AI缓拥堵,边缘计算或成杀手锏
  8. Codeforces Round #459 (Div. 2)题解
  9. .NET 源代码的安全性(源代码工具真正比拼) (論)
  10. 计算机网络网络层之层次路由
  11. py-R-FCN安装记录
  12. cups 2.4.1编译办法
  13. p2p - cdn传输技术杂谈
  14. 身份证前6位地区编码sql
  15. 儿童素描手绘创意设计字体 for mac
  16. 基本农田卫星地图查询_水经注万能地图下载器软件主界面功能说明
  17. 联想智能云教室安win7_用“联想智能云教室”部署系统完成后,操作卡顿?
  18. java-IO流-在文件中数据内容的插入问题
  19. Godot Engine:选择Skeleton节点时出现不停输出“object was deleted while awaiting a callback”并死机问题
  20. 我今天登陆竟然被 CSDN 管理员给封杀了。

热门文章

  1. python中msg是什么意思_python下载.msg文件的附件
  2. windows。forms.timer设置第一次不等待_适用于初学者的中线交易策略——金叉的三种设置条件...
  3. client中周期性边界_(整理)周期性边界条件.
  4. 小程序 const moment = require('moment')_开源小程序精选
  5. maven多模块项目部署到服务器,GitHub - baxias/foweb: 一个基于 Spring+SpringMVC+Mybatis 的Maven多模块项目。(实现前后端分离的服务器端)...
  6. nginx index.php 端口,请教下 nginx 配置域名反代到本地端口这里面应该怎么加。
  7. 普通RNN的缺陷—梯度消失和梯度爆炸
  8. Java集合 Collection
  9. oracle 本年1月1号 yy,ORACLE 日期函数
  10. 万年历c语言大作业实验,用C语言写的一个万年历