一分钟搞懂 SOLID 原则

简介: 一分钟搞懂 SOLID 原则

SOLID 原则是面向对象设计的一个基本原则,通过这篇短文我们可以很快了解 SOLID 原则的核心思想。原文:SOLID Principles — Concise and brief explanation[1]


大家好,今天,我尝试用最简单的方式告诉大家,什么是 SOLID 原则。


SOLID 的意思是:


image.png


1. 单一职责原则(Single responsibility principle)


  • 每个类应该只有一个变更的理由。
  • 将不相关的功能解耦,并将它们隔离到独立的类中。
  • 可读性、可重用性和可维护性。


2. 开闭原则(Open-closed principle)


  • 在有可能需要变更的代码前面引入抽象。
  • 只在需求合理可预测的情况下使用。
  • 将代码与需求变更隔离开来。


3. 里氏替换原则(Liskov substitution principle)


  • 在继承层次结构中定义适当的子类型非常重要
  • 七大规则
  1. 确定的参数(Contravariance of arguments)
  2. 确定的结果(Contravariance of result)
  3. 前置条件(Pre Conditions)
  4. 后置条件(Post Conditions)
  5. 例外规则(Exception rule)
  6. 内变规则(In-variant rule)
  7. 限制规则(Constraint rule)
  • 对于将被其他人复用的代码尤其重要。
  • 可以安全的使用子类。


4. 接口分离原则(Interface segregation principle)


  • 客户端应该只依赖于实际使用的功能。
  • 最小知识和最小耦合原则。
  • 健壮的设计,防止设计错误,更好的可读性。


5. 依赖反转原则(Dependency inversion principle)


  • 管理抽象的使用。
  • 通过抽象反转源代码的依赖关系。
  • 防止变更出错,提高可重用性,减少对外部模块的依赖。


References:

[1] https://medium.com/front-end-weekly/solid-principles-concise-and-brief-explanation-96790dc63b63


目录
相关文章
|
存储 Java 编译器
Go函数解密:底层工作原理
Go函数解密:底层工作原理
260 0
|
设计模式 前端开发 关系型数据库
【DDD】全网最详细2万字讲解DDD,从理论到实战(代码示例) 3
【DDD】全网最详细2万字讲解DDD,从理论到实战(代码示例)
5218 2
|
微服务 测试技术 Java
阿里技术专家详解 DDD 系列- Domain Primitive
关于DDD的一系列文章,希望能继续在总结前人的基础上发扬光大DDD的思想,但是通过一套我认为合理的代码结构、框架和约束,来降低DDD的实践门槛,提升代码质量、可测试性、安全性、健壮性。
61906 17
阿里技术专家详解 DDD 系列- Domain Primitive
|
3月前
|
存储 SQL 关系型数据库
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
mysql底层原理:索引、慢查询、 sql优化、事务、隔离级别、MVCC、redolog、undolog(图解+秒懂+史上最全)
|
关系型数据库 开发者
|
3月前
|
监控 架构师 NoSQL
spring 状态机 的使用 + 原理 + 源码学习 (图解+秒懂+史上最全)
spring 状态机 的使用 + 原理 + 源码学习 (图解+秒懂+史上最全)
|
7月前
|
存储 算法 Java
G1原理—6.G1垃圾回收过程之Full GC
本文详细探讨了G1垃圾回收器对Full GC(FGC)的优化处理,涵盖FGC的前置处理、整体流程及并行化改进。重点分析了传统FGC串行化的局限性以及G1通过Region分区和RSet机制实现并行标记的优势,包括任务窃取提升效率、跨分区压缩以生成空闲Region等技术细节。此外,文章还介绍了G1的新特性——字符串去重优化,通过判断char数组一致性减少重复字符串占用内存,从而提升内存使用效率。总结部分全面回顾了G1在FGC中的各项优化措施及其带来的性能改善。
G1原理—6.G1垃圾回收过程之Full GC
|
10月前
|
设计模式 Java 程序员
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
本系列文章聚焦于面向对象软件设计中的设计模式,旨在帮助开发人员掌握23种经典设计模式及其应用。内容分为三大部分:第一部分介绍设计模式的概念、UML图和软件设计原则;第二部分详细讲解创建型、结构型和行为型模式,并配以代码示例;第三部分通过自定义Spring的IOC功能综合案例,展示如何将常用设计模式应用于实际项目中。通过学习这些内容,读者可以提升编程能力,提高代码的可维护性和复用性。
1923 1
【23种设计模式·全精解析 | 概述篇】设计模式概述、UML图、软件设计原则
|
9月前
|
存储 Java C++
Java数组:静态初始化与动态初始化详解
本文介绍了Java中数组的定义、特点及初始化方式。
470 12
|
12月前
|
存储 算法 Java
Nacos学习圣经:从入门到精通 Nacos,最全详解
本文,就是 Nacos 学习圣经,帮助大家彻底掌握 阿里 的核心组件, nacos 。 Nacos学习圣经 正式版本会有更新, 。
Nacos学习圣经:从入门到精通 Nacos,最全详解