首页 > 其他分享 >设计模式的7大基本原则

设计模式的7大基本原则

时间:2024-08-15 13:22:53浏览次数:11  
标签:基本 依赖 原则 代码 复用 Principle 设计模式

设计模式是解决问题的经验总结,是软件开发中常用的一种设计思想和方法。在软件开发过程中,遵循设计模式可以提高代码的可重用性、可维护性和可扩展性。设计模式的基本原则是软件开发过程中的指导方针,它们是在解决问题时需要遵循的基本原则。

本文将介绍设计模式的7大基本原则,以帮助开发者更好地理解和应用设计模式。

1. 单一职责原则(Single Responsibility Principle)

单一职责原则是指一个类只负责一项职责或功能。一个类只应该有一个引起它变化的原因。这个原则可以避免一个类的职责过于复杂,使得类更加可读、可维护和可扩展。

2. 开闭原则(Open-Closed Principle)

开闭原则是指软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。即在不修改现有代码的情况下,可以通过扩展来增加新的功能。这个原则促使我们设计具有良好扩展性的软件系统。

3. 里氏替换原则(Liskov Substitution Principle)

里氏替换原则是指在引用父类对象的地方,可以使用其子类对象来替换,而不影响程序的正确性。子类应该尽量保持父类的行为,符合父类定义的约束条件。在遵守这个原则的前提下,可以为系统引入新的子类,提高代码的可扩展性。

4. 依赖倒置原则(Dependency Inversion Principle)

依赖倒置原则是指高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖具体实现,具体实现可以依赖抽象。这个原则可以降低模块之间的耦合度,提高代码的可维护性和可测试性。

5. 接口隔离原则(Interface Segregation Principle)

接口隔离原则是指一个类对另一个类的依赖应该建立在最小的接口上。一个类只与其需要的接口进行交互,不应该依赖于不需要的接口。这个原则可以避免一个类依赖不需要的方法,减少类之间的耦合度。

6. 迪米特法则(Law of Demeter)

迪米特法则是指一个对象应该对其他对象有尽可能少的了解,只与其直接的朋友通信。不要和陌生人讲话。通过减少对象之间的依赖关系,可以提高代码的可维护性和可测试性。

7. 合成复用原则(Composite Reuse Principle)

合成复用原则是指尽量使用对象组合,而不是继承来达到复用的目的。组合可以使系统更加灵活,降低类之间的耦合度。

以上就是设计模式的7大基本原则。这些原则指导着我们在软件开发过程中的设计和实现,帮助我们编写更加优秀、可维护和可扩展的代码。

参考资料:

  • 《设计模式:可复用面向对象软件的基础》
  • 《重构:改善既有代码的设计》

标签:基本,依赖,原则,代码,复用,Principle,设计模式
From: https://blog.csdn.net/wls_gk/article/details/141188814

相关文章

  • 【CMake】掌握CMake基本操作
    @目录1.文件树和CMakeLists.txt一览1.1语法基本规则1.2文件目录讲解2.基本指令讲解2.1CMAKE_MINIMUM_REQUIRED(VERSIONXXX)2.2PROJECT(projectname)2.3SET()2.4ADD_SUBDIRECTORY(srcbin)2.5INCLUDE_DIRECTORIES(lib/)2.6ADD_EXECUTABLE(mainmain.cpp)2.7ADD_LIBRARY(......
  • 一文读懂预检的基本知识
    目录前言1.基本知识2.Demo前言两次请求,前后分析问题何在,最后发现是预检的知识点为何会有预检请求这个概念:为了提高安全性,避免潜在的安全漏洞安全性:允许浏览器在发送跨域请求之前检查服务器是否允许这种操作,防止未经授权的请求对用户数据进行操作复杂请求:对于一......
  • 详细分析SQL Server触发器的基本知识
    目录前言1.基本知识2.Demo3.查找特定表的存储过程前言原先写过一篇类似的,不过是基于Mysql:添加链接描述对应SqlServer的补充知识点:详细配置SQLServer的链接服务器(图文操作Mysql数据库)1.基本知识基本知识其实差不多,先从CRUD开始触发器的类型:DML触发器:在对表......
  • 设计原则与思想:规范与重构 理论一 - 三 什么情况下要重构?到底重构什么?又该如何重构?有
    理论一:什么情况下要重构?到底重构什么?又该如何重构?重构的目的:为什么要重构(why)?对于项目来言,重构可以保持代码质量持续处于一个可控状态,不至于腐化到无可救药的地步。对于个人而言,重构非常锻炼一个人的代码能力,并且是一件非常有成就感的事情。它是我们学习的经典设计思想......
  • 设计模式-延迟加载(Lazy Load)
    概念一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。加载一个对象会引起大量相关对象的加载,这样会损害系统的性能。延迟加载会暂时终止这个加载过程。运行机制四种实现延迟加载的方法:延迟初始化(Lazyinitialization)。每次访问属性域都要先检查该域是否......
  • Vitis AI 基本认知(线性回归)
    目录1.目的2.TensorFlow2.1 Sequential2.2 Functional3.PyTorch4. 欠定系统4.1方程的解4.2 欠定系统与过拟合5.总结1.目的学习不同深度学习框架下构建模型的区别。以简单的线性回归模型为例:欠定系统与过拟合2.TensorFlow在Keras中,介绍Sequent......
  • 基本DOS命令
    打开cmd的方式:winr输入cmd打开常见DOS命令:盘符切换字母英文:查看当前目录下所有文件dir切换目录cdchangedirectorycd/dC:\Users\苟明睿\Desktopcd..上一级清理屏幕cls(clearscreen)推出终端exit查看电脑ipipconfig打开应用calcmspaintnotepad......
  • C程序设计(安徽专升本3.2基本数据类型)
    一、数据类型的分类 在本章节我们之讲解基础的数据类型,因为后续的数据类型将会单独对此讲解,常考的为基本数据类型,数组,函数,指针这几种类型!其它类型作为了解,认识即可二、整型类型此处对整数类型的讲解排除字符型和布尔型,它们单独拉出讲解,且我不喜欢废话讲解,我直接列表加代码......
  • kubernetes应用编排的基本工作逻辑
    Pod和应用Kubernetes本质上是“以应用为中心”的现代应用基础设施,Pod是其运行应用及应用调度的最小逻辑单元本质上是共享Network、IPC和UTS名称空间以及存储资源的容器集可将其想象成一台物理机或虚拟机,各容器就是该主机上的进程各容器共享网络协议栈、网络设备、路由、IP......
  • python之numpy(1 安装及基本介绍)
    numpy介绍numpy是Python中的一个非常流行的库,它提供了大量的数学函数工具,特别是针对数组和矩阵的操作。numpy的全称是NumericalPython,它极大地简化了数组和矩阵的运算,使得Python成为进行科学计算的一个强大工具。安装numpy要安装numpy,需在终端(win+r---->cmd)提示符下执......