[设计模式]设计模式SOLID原则
在程序设计领域, SOLID(单一功能、开闭原则、里氏替换、接口隔离以及依赖倒置)是由罗伯特·C·马丁在21世纪早期引入的记忆术首字母缩略字,指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。SOLID所包含的原则是通过引发编程者进行软件源代码的代码重构进行软件的代码异味清扫,从而使得软件清晰可读以及可扩展时可以应用的指南。SOLID被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发的基本原则的重要组成部分。
设计模式目录 包含java,python,javascript等语言的代码实现
设计模式SOLID原则
S |
单一职责原则 (Single Responsibility Principle) |
每一个类应该专注于做一件事情。 |
O |
开闭原则 (Open Close Principle) |
对扩展开放,对修改关闭。 核心思想就是对抽象编程,而不对具体编程。 |
L |
里氏替换原则 (Liskov Substitution Principle) |
在软件里面,把父类替换成子类,程序的行为没有变化。子类型必须能够替换掉它们的父类型。它们具有is-A关系. 子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。 主要针对继承的设计原则 |
I |
接口隔离原则 (Interface Segregation Principle) |
表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口中额方法分组,然后用多个接口代替它,每个接口服务于一个子模块。简单说,就是使用多个专门的接口比使用单个接口好很多。 该原则观点如下: 1)一个类对另外一个类的依赖性应当是建立在最小的接口上 2)客户端程序不应该依赖它不需要的接口方法。 |
D |
依赖倒置原则 (Dependence Inversion Principle) |
实现尽量依赖抽象,不依赖具体实现。依赖注入是该原则的一种实现方式。 1. 上层模块不应该依赖于下层模块,他们共同依赖于一个抽象,即:父类不能依赖子类,他们都要依赖抽象类。 2. 抽象不能依赖于具体,具体应该要依赖于抽象。 |
设计模式之间的关系
[设计模式]设计模式SOLID原则相关推荐
- 设计模式之SOLID原则再回首
本科阶段学过设计模式,那时对设计模式的五大原则--SOLID原则的概念与理解还是比较模糊,此时过去了2年时间,在学习<高级软件工程>课程中老师又提到了设计模式,课程中还详细讨论了五 ...
- 实践GoF的23的设计模式:SOLID原则(下)
本文分享自华为云社区<实践GoF的23的设计模式:SOLID原则(下)>,作者: 雷电与骤雨. 在<实践GoF的23种设计模式:SOLID原则(上)>中,主要讲了SOLID原则 ...
- 实践GoF的23种设计模式:SOLID原则(上)
本文分享自华为云社区<实践GoF的23种设计模式:SOLID原则(上)>,作者:元闰子. 前言 从1995年GoF提出23种设计模式到现在,25年过去了,设计模式依旧是软件领域的热门话题. ...
- 设计模式之SOLID原则
介绍 设计模式中的SOLID原则,分别是单一原则.开闭原则.里氏替换原则.接口隔离原则.依赖倒置原则.前辈们总结出来的,遵循五大原则可以使程序解决紧耦合,更加健壮. S ...
- java solid设计原则_设计模式之SOLID原则
什么是SOLID原则 SOLID = SRP(职责单一原则) + OCP(对扩展开发,修改关闭原则)+ LSP(里氏替换原则)+ ISP(接口隔离原则)+ DIP(依赖反转原则) SRP: Singl ...
- 依赖倒置原则_设计模式之SOLID原则
在程序设计领域, SOLID(单一功能.开闭原则.里氏替换.接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期引入,指代了面向对象编程和面向对象设计的五个基本原则.当这些原则被一起应用时,它们使 ...
- 设计模式中的solid原则
好的代码不只为了完成现有功能,也会考虑后续扩展. 在结构设计上松耦合易读易扩展,在领域实现上高内聚不对外暴露实现细节不被外部干扰. 在众多项目的锤炼和对程序设计的不断追求,多年编程历程提炼出来的心得体 ...
- 软件设计模式 SOLID 原则 - SOLID Principles
软件设计模式 SOLID 原则 - SOLID Principles SOLID is a mnemonic for five design principles intended to make s ...
- 设计模式的六大原则。简称:SOLID
设计模式的六大原则.简称:SOLID 迪米特法则(Law of Demeter):如果两个类之间并不需要直接通信,那么就不应该让这两个类相互作用.又叫作最少知识原则 迪米特法则的定义是:只与你的直接朋 ...
最新文章
- 10行Python,搭建一个游戏AI | 视频教程
- 中国AI芯片产业发展白皮书:未来三年年均增长率超50%
- centos 网卡配置(入门级)
- hadoop的idea连接配置_idea远程连接hadoop(macOS)
- 双向循环链表c语言,双向循环链表的实现与使用
- mysql安装./depcomp_编译安装mysql及问题汇总
- matlab梯形模糊数,基于梯形模糊数的OWA方法与matlab应用
- Javascript实现页面跳转传值示例Demo
- Hyperledger fabric通道(Channel)的新建、管理、节点如何加入channel
- Dijkstra及其堆优化
- spring mvc Cotroller获取请求参数
- IDEA 和 Eclipse 集成开发工具配置 Java API 帮助文档教程
- JavaCV的摄像头实战之五:推流
- 云服务器搭建文件存储,云服务器 搭建 文件分类存储
- TLC5615 DA转换 verilog FSM
- Error: Unable to access jarfile zipkin-server-2.22.2-exec.jar
- 全新天龙八部:4年积攒更惬意的方法
- 文件存储的实现-login登录案例1-内置存储
- Fri Sep 11 22:24:03 CST 2020 WARN: Establishing SSL connection without server‘s identity verificatio
- echart横坐标X轴的值竖着显示
热门文章
- 活动详情页面html代码,折扣活动详情.html
- Chapter17: Artificial Intelligenc-Enabled De Novo Design of Novel Compounds that Are Synthesizable
- 如何设计账户余额的数据准确性?
- MacOS安装brew教程从入门到入土
- canvas画任意角度的扇形,弧形,及扇形弧形填纯色渐变色
- 基于JAVA后台微信买菜小程序系统 开题报告
- 心脏滴血漏洞简单攻击
- php中的where用法,ThinkPHP中where()使用方法详解
- 从金庸小说看古代武侠世界计划生育
- 6月小红书博主排行,谁是最佳创作者?