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

我们用身边的事物来举例,让它们更易于理解和记忆。

好啦,开始吧~

S - 单一职责原则

Single Responsibllity Principle - 即 SRP

一个类只能承担一个职责。通俗点儿说就是一个类只能承担一件事,并且只能有一个潜在的原因去更改这个类,否则就违反了单一职责原则。

O - 开闭原则

Open/Closed Principle - 即 OCP

软件实体应该对 扩展 开放,对 修改 关闭。允许扩展行为而无需修改源代码。

L - 里氏替换原则

Liskov Substitution Principle - 即 LSP

程序中的对象应该可以被其子类实例替换掉,而不会影响程序的正确性。

I - 接口隔离原则

Interface Segregation Principle - 即 ISP

使用多个特定细分的接口比单一的总接口要好,不能强迫用户去依赖他们用不到的接口。

D - 依赖倒置原则

Dependency Inversion Principle - DIP

程序要依赖于抽象接口,而不是具体实现。

高层模块不应该依赖于低层模块,二者都应该依赖于抽象

抽象不应该依赖具体实现,具体实现应该依赖抽象

插头不应该依赖具体某种电线,它只需要有线并且能导电。

全文完~希望本文对你理解 SOLID 有帮助啦~

参考文章

S.O.L.I.D. Principles Around You

SOLID 维基百科

SRP 维基百科

OCP 维基百科

LSP 维基百科

ISP 维基百科

DIP 维基百科

本文首发于公众号:码力全开(codingonfire)

本文随意转载哈,注明原文链接即可,公号文章转载联系我开白名单就好~

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[图解你身边的 SOLID 原则]http://www.zyiz.net/tech/detail-126620.html

html5 中的solid,图解你身边的 SOLID 原则相关推荐

  1. HTML5 中的canvas元素用于,HTML5中的Canvas元素

    canvas 元素用于在网页上绘制图形. 什么是Canvas? HTML 5 的canvas元素使用JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canvas ...

  2. html5中meter讲解_Java中的得墨meter耳定律–最少知识原理–实际示例

    html5中meter讲解 得墨meter耳定律(也称为最少知识定律)是一种编码原理,它表示模块不应该知道其操作的对象的内部细节. 如果代码取决于特定对象的内部细节,则很有可能一旦该对象的内部发生更改 ...

  3. html5中如何去掉input type date默认

    html5中如何去掉input type date默认样式 2.对日期时间控件的样式进行修改目前WebKit下有如下9个伪元素可以改变日期控件的UI: ::-webkit-datetime-edit ...

  4. html+监听+页面滚动到底部,解决HTML5中滚动到底部的事件问题

    问题:在H5中,我们有这样的需求:例如有列表的时候,滚动到底部时,需要加载更多. 解决方案:可以采用window的滚动事件进行处理 分析:如果滚动是针对整个屏幕而言的(不针对于某个界面小块),那么这个 ...

  5. HTML5中拖动功能的添加属性,html5中可拖动dragable属性及其他成员的讲解

    html5中可拖动dragable属性及其他成员的讲解 发布时间:2020-04-22 11:08:02 来源:亿速云 阅读:350 作者:小新 这篇文章主要为大家详细介绍了html5中可拖动drag ...

  6. HTML5中如何实现rpx布局

    HTML5中如何实现rpx布局 引导 我们在实际工作中会遇到很多情况会用到rpx布局,rpx布局的原理是将屏幕横向划分750份,每份即是1rpx.从原理上,rpx有很好的多端适配能力,而且比em.re ...

  7. HTML5 中 40 个最重要的技术点

    我是一个ASP.NET MVC的开发者,最近在我找工作的时候被问到很多与HTML5相关的问题和新特性.所以以下40个重要的问题将帮助你复习HTML5相关的知识. 这些问题不是你得到工作的高效解决方案, ...

  8. html5中不再支持table的cellspacing和cellpadding属性

    如果你现在开始用html5的声明来写页面时,你会发现在定义table的cellspacing和cellpadding时被提示该属性已过时或者提示非法属性.具体原因是在html5中table标签的这两个 ...

  9. HTML5中input输入框默认提示文字向左向右移动

    HTML5中input输入框默认提示文字向左向右移动 首先演示input输入框代码 <style>* {margin: 0;padding: 0;}.sousuo {width: 458p ...

最新文章

  1. vb 用代码添加控件
  2. ubifs linux,ubifs使用方法
  3. 空间数据引擎oracle_GIS 与Oracle 数据库空间数据格式的转换
  4. 磁盘IO:缓存IO与直接IO
  5. python求解二次规划_Python二次规划和线性规划使用实例
  6. 【Java】在eclipse中使用maven进行项目构建 入门篇
  7. machine learning (7)---normal equation相对于gradient descent而言求解linear regression问题的另一种方式...
  8. 计算机上可以插键盘吗,电脑键盘上这些按键竟然可以这样用?
  9. ASP.NET Ajax 实现无刷新分页
  10. 《系统集成项目管理》第四章 项目管理一般知识
  11. 线程的三种创建方式以及区别
  12. 锂电池是什么材料做的
  13. Xposed框架安装、使用及插件开发
  14. python把英语句子成分字母_英语句子成分分析(最完整版)
  15. HTML+CSS淘宝 页眉导航栏以及Logo搜索框的实现
  16. 计算机专业助我成长作文600,挫折助我成长作文(精选6篇)
  17. JSP页面中用绝对路径显示图片
  18. 47 软件工程34h-北京大学孙艳春老师
  19. 《C语言程序设计》江宝钏主编-习题6-2-排列数
  20. js对数组的删除操作

热门文章

  1. 计算机考试没有输入法怎么办,电脑输入法不见了怎么解决
  2. 现货代理,贵金属代理怎么选择一个好的平台?
  3. upload靶场第一-二十一关
  4. 大数据-zookeeper
  5. python高级特性是什么意思_Python高级特性
  6. win10暴力注册,无脑点击,一键注册,告别桌面重置烦恼!!!
  7. Shazam音频指纹提取算法
  8. Oracle 12c、18c、19c中的MGMTDB(下)
  9. 简单的项目规模统计方法
  10. 如何做好一名前端Leader