设计模式的基石

设计模式按照我的理解来说就是将那些优秀代码中的可复用部分抽象出来,让我们这些菜鸟可以模仿抄袭。至于我们为什么要模仿,当然是这些抽象出来的固定模式可以让我们的代码结构清晰,易于扩展,便于理解。

那么这些大神是如何设计出这些优秀的模式的?秘诀就是遵循下列设计原则:

  1. 单一职责(Single Responsibility Principle):专人专事,每个类的角色应该是单一的。这样设计的好处是我们可以像搭积木一样将功能单一的类组合成复杂的类,对于设计维护扩展理解都有很大的好处。
  2. 开闭原则(Open/Close Principle):通俗来说就是在原有代码上进行扩展而不是进行修改。这样可以保证已有逻辑的正常。开闭原则要求我们需要在设计软件的时候就保留扩展接口,这样在升级优化或者增加新功能的时候就可以不用改动旧逻辑了。
  3. 里氏替换(Liskov Substitution Principle):很难记的名字。。。一言蔽之就是抽象类的设计需要包含子类所有的特性。这样后续扩展新子类的时候就不会造成接口不适配的问题。
  4. 接口隔离(Interface Segregation Principle):抽象类的设计需要尽可能的小,这样有两个好处,一个是客户端依赖减少,另一个是子类的设计可以更加简单。
  5. 依赖倒置(Dependency Inversion Principle):意思就是在写代码的时候尽可能的依赖抽象类,这样便于以后的增加新子类来扩展功能,而且也减少对各种子类实现的依赖。
  6. 迪米特法则(law of Demeter):减少模块之间的依赖来达到松耦合的目的。

上面的五个原则合起来就是Solid原则,加上第六个就是我们在写代码时需要考虑的方向。有法可依,有法必依,才能让我们的代码更加简洁合理易于扩展和维护。不过还是要提醒一下,过犹不及,在理解了设计模式并灵活运用之前切勿过度设计,画虎不成反类犬就搞笑了。后面就让我来介绍一下23种基础的设计模式,以及如何使用C++语言来实现对应模式的案例。

参考:

《秒懂设计模式》

《》

相关推荐
c++之路2 小时前
CMake 系列教程(二):基础命令详解
开发语言·c++
南境十里·墨染春水6 小时前
C++ 工厂模式:从入门到进阶,彻底掌握对象创建的艺术
开发语言·c++·算法
JosieBook7 小时前
【数据库】时序预测能力的分级进化:TimechoAI如何让每一类用户都能精准预见未来
java·开发语言·数据库
加号37 小时前
【C#】 文件与目录管理:创建、删除操作的技术解析
开发语言·c#
diving deep8 小时前
脚本速览-python
开发语言·python
workflower8 小时前
使用大语言模型处理用户需求
大数据·人工智能·设计模式·重构·动态规划
一生了无挂8 小时前
Java处理JSON技巧教学(从基础到高阶实战全覆盖)
java·开发语言·json
swordbob9 小时前
Spring 单例 Bean 是线程安全的吗?
java·开发语言
一拳一个呆瓜9 小时前
【STL】_SCL_SECURE_NO_WARNINGS
c++·stl
小小编程路9 小时前
C++ 异常 完整讲解
开发语言·c++