一分钟搞懂 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


目录
相关文章
|
25天前
|
分布式计算 Java 关系型数据库
SOLID设计原则:里式替换原则
本文详细介绍了SOLID设计原则中的Liskov替换原则(LSP),并通过实例解释了其核心概念:子类型应能在不破坏应用的情况下替换父类型。文章首先从科学定义出发,逐步引出LSP的实际意义,并通过经典的正方形与长方形代码示例展示了违反LSP的问题及其解决方案。接着,通过股票交易场景进一步说明了如何正确应用LSP。最后总结了LSP的重要性及其在软件开发中的应用技巧。
34 8
|
2月前
|
关系型数据库 开发者
|
3月前
|
关系型数据库 测试技术
|
4月前
|
开发者 Python
软件开发中的 DRY、KISS 和 SOLID 原则
**软件开发中的DRY、KISS和SOLID原则概览** - **DRY (Don't Repeat Yourself)**: 避免代码重复,确保每项知识在系统中有唯一表示,减少冗余,提高可维护性。例如,通过封装重复逻辑到函数或类。
|
6月前
|
设计模式 前端开发 关系型数据库
SOLID设计原则和我的一点个人感悟
SOLID设计原则和我的一点个人感悟
54 0
|
敏捷开发 存储 关系型数据库
码农也要有原则 : SOLID via C#
让姑姑不再划拳 码农也要有原则 : SOLID via C#
68 0
 码农也要有原则 : SOLID via C#
|
架构师 关系型数据库 程序员
空手撸SOLID架构设计原则,六大原则层层解析,你绝想不到
设计原则概述 通常来说,要想构建—个好的软件系统,应该从写整洁的代码开始做起。毕竟,如果建筑所使用的砖头质量不佳,那么架构所能起到的作用也会很有限。反之亦然,如果建筑的架构设计不佳,那么其所用的砖头质量再好也没有用。这就是SOLID设计原则所要解决的问题。
68 0
|
设计模式 Java 关系型数据库
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
【Java设计模式 经典设计原则】五 SOLID-DIP依赖反转原则
113 0
|
设计模式 搜索推荐 安全
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
【Java设计模式 经典设计原则】三 SOLID-LSP里式替换原则
137 0
|
设计模式 消息中间件 存储
软件设计 软件设计模式之SOLID原则
软件设计 软件设计模式之SOLID原则
97 0