当前位置: 首页 > news >正文

设计模式Base

设计模式是在软件开发过程中总结出来的一些经验,它们大多数都遵循一些基本原则:

  1. 单一职责原则(SRP):一个类应该只有一个引起它变化的原因。也就是说,一个类应该只有一个职责。
  2. 开放封闭原则(OCP):软件实体应该对扩展开放,对修改关闭。也就是说,当需求发生变更时,我们应该通过添加新的代码来扩展现有功能,而不是直接修改现有代码。
  3. 里氏替换原则(LSP):子类型必须能够替换掉它们的父类型。也就是说,在使用继承时,派生类应该替换掉基类,并且基于基类编写的代码无需修改就能够正常运行。
  4. 依赖倒置原则(DIP):抽象不应该依赖于具体实现,具体实现应该依赖于抽象。也就是说,高层模块不应该依赖于低层模块的具体实现,而是依赖于抽象接口。
  5. 接口隔离原则(ISP):客户端不应该依赖于它不需要的接口。也就是说,我们应该将多个不同的接口拆分成更小、更具体的接口,这样客户端只需要依赖于它们所需要的接口即可。
  6. 迪米特法则(LoD):一个对象应该对其它对象保持最少的了解。也就是说,一个类应该尽可能地减少对其他类的依赖关系,使得系统更加松耦合。

这些原则都是为了让我们编写的代码更具有可维护性、可扩展性和可复用性。在设计模式的使用过程中,我们也要遵循这些原则,这样才能保证我们的代码质量更高,更易于维护和扩展。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vue-路由自动化
  • Nginx-http_limit_req_module模块
  • docker基础知识以及windows上的docker desktop 安装
  • Unity实现安卓App预览图片、Pdf文件和视频的一种解决方案
  • SpringBootWeb 篇-入门了解 Swagger 的具体使用
  • 详细谈谈负载均衡的startupProbe探针、livenessProbe探针、readnessProbe探针如何使用以及使用差异化
  • 【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合
  • sqlmap使用之-post注入、head注入(ua、cookie、referer)
  • 【HarmonyOS】获取通讯录信息
  • hudi数据湖万字全方位教程+应用示例
  • 14-47 剑和诗人21 - 2024年如何打造AI创业公司
  • google Guava组件实现原理和Java使用场景【主要是本地缓存Cache】
  • 如何理解Node.js?NPM?Yarn?Vue?React?
  • mybatis动态传入参数 pgsql 日期 Interval ,day,minute
  • FastGPT+OneAI接入网络模型
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Android交互
  • Java方法详解
  • JWT究竟是什么呢?
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 聊聊flink的BlobWriter
  • 前端存储 - localStorage
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • hi-nginx-1.3.4编译安装
  • 组复制官方翻译九、Group Replication Technical Details
  • ​【经验分享】微机原理、指令判断、判断指令是否正确判断指令是否正确​
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​云纳万物 · 数皆有言|2021 七牛云战略发布会启幕,邀您赴约
  • #define 用法
  • #NOIP 2014# day.1 T2 联合权值
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (27)4.8 习题课
  • (day 12)JavaScript学习笔记(数组3)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (十六)Flask之蓝图
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (自用)交互协议设计——protobuf序列化
  • 、写入Shellcode到注册表上线
  • .axf 转化 .bin文件 的方法
  • .NET Micro Framework 4.2 beta 源码探析
  • .Net Redis的秒杀Dome和异步执行
  • .NET/C# 的字符串暂存池
  • .Net的DataSet直接与SQL2005交互
  • .NET轻量级ORM组件Dapper葵花宝典
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @ModelAttribute使用详解
  • @Repository 注解
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [acm算法学习] 后缀数组SA