设计模式的六大原则

  • 软件设计开发原则
    • 为了让代码更好重用性、可读性、可靠性、可维护性
    • 诞生出了很多软件设计的原则,这6大设计原则是我们要掌握的
    • 将六大原则的英文首字母拼在一起就是SOLID(稳定的),所以也称之为SOLID原则
  • 单一职责原则
    • 一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引起它变化的原因
    • 是实现高内聚、低耦合的指导方针
      • 高内聚
        • 尽可能类的每个成员方法只完成一件事(最大限度的聚合)
        • 模块内部的代码,相互之间的联系越强,内聚就越高,模块的独立性就越好
      • 低耦合:减少类内部,一个成员方法调用另一个成员方法,不要有牵一发动全身
  • 开闭原则
    • 对扩展开放,对修改关闭,在程序需要进行扩展的时候,不能去修改原有的代码,实现一个热插拔的效果
  • 里氏替换原则LSP
    • 任何基类可以出现的地方,子类一定可以出现
    • 在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象
    • controller–>service–>dao
  • 依赖倒转原则
    • 是开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体
    • 高层模块不应该依赖低层模块,二者都应该依赖其抽象
  • 接口隔离原则
    • 客户端不应该依赖那些它不需要的接口
    • 使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度
  • 迪米特法则
    • 最少知道原则,一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立
    • 类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波及
    • 通过引入一个合理的第三者来降低现有对象直接的耦合度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896152.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于springboot的网上服装商城推荐系统的设计与实现

基于springboot的网上服装商城推荐系统的设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:idea 源码获取&#xf…

【AI大模型】本地部署 Code Llama 大模型

要在本地部署 Code Llama 大模型并结合 Text Generation Web UI 实现远程运行 LLM(大语言模型),你需要完成以下几个步骤: 1. 准备环境 1.1 硬件和软件要求 硬件: GPU(如 NVIDIA 及支持 CUDA 的显卡&#…

内衣迷你洗衣机什么牌子好?内衣洗衣机2024年口碑指数排行榜推荐

内衣专用的洗衣机是一种专门设计用于洗涤内衣和贴身衣物的小型洗衣机。相比于普通的大型洗衣机,这样的小型洗衣机在设计和功能上有很大的区别。内衣专用的迷你洗衣机可以有效地保护内衣和贴身衣物的质量和卫生。在传统的洗衣机中,如果经常将内衣裤、袜子…

RabbitMQ 中的交换机学习

RabbitMQ 中的交换机学习 一、直接交换机(Direct Exchange) 1. 介绍 Direct 交换机将消息路由到绑定了指定 Routing Key 的队列中。每条消息都有一个 Routing Key,当队列绑定到 Direct 交换机时,它需要一个指定的 Routing Key。…

使用Python实现某易云音乐歌曲下载

前言 在这篇文章中,我们将探讨如何通过Python结合JavaScript代码来逆向网易云音乐的API接口,以获取并下载指定歌曲。请注意,本文仅用于技术学习与交流目的,实际使用时请遵守相关法律法规及服务条款。 目标网站 1. 准备工作 首先,我们需要安装一些必要的库: execjs:用…

揭秘灼口综合征:你的舌头痛竟是这些原因在作祟!

在日常生活中,你是否曾遭遇过舌头像被火烧般的灼痛感?这种让人难以忍受的症状,其实是一种名为“灼口综合征”的疾病表现。今天,我们就来深入探讨这一疾病的背后原因,让你了解这一病症的真相,从而更好地应对…

随记:有关idea中jdk版本

第一个地方:这个可能就是你整个项目的jdk版本的使用,你改了这里大概率可以改了 第二个地方: 就是 有关maven项目的 pom文件 一开始我的第一地方用的是 17 但是这里用的是8 但是运行的时候还是 17 这里可能是 maven的 项目这个地方只是对…

Unity导入.FBX模型设置

** Unity导入.FBX模型设置 ** 第一步、导入.fbx模型 Assets- Import New Asset 第二步、设置 Animation Type 为Legacy 这里导入的是非人形模型设置为Lagacy None:不导入动画Animation Clip Legacy:用于早期动画设置,其不支持状态机A…

WebSocket状态码及异常报错1006

文章目录 1.WebSocket协议简介2.WebSocket状态码的作用:3.WebSocket状态码1006详解1.问题原因2.解决方案 1.WebSocket协议简介 WebSocket协议是一种基于TCP的协议,它通过在浏览器和服务器之间建立一条持久的双向通信通道,实现了实时的数据传…

Web,RESTful API 在微服务中的作用是什么?

大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …

NVIDIA 发布适用于网络安全的 NIM Blueprint

德勤使用适用于容器安全的 NVIDIA NIM Agent Blueprint 帮助企业利用开源软件构建安全的 AI。 文章目录 🙊 德勤使用 NVIDIA AI 保障软件安全🙊 通过生成式 AI 保障软件安全🙊 适用于网络安全成功的蓝图🎠 什么是 NVIDIA NIM Agen…

javaWeb项目-ssm+jsp高校毕业生就业满意度调查统计系统功能介绍

本项目源码(点击下方链接下载):java-ssmjsp毕业生就业满意度调查系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端&…

Java使用原生HttpURLConnection实现发送HTTP请求

Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、HttpURLConnection 类的介绍 HttpURLConnection 是 Java 提供的…

字幕怎么自动生成?教你5种视频加字幕方法

在这个短视频时代,视频内容已成为传播信息、娱乐大众的重要载体。而字幕作为视频不可或缺的一部分,不仅能够提升观众的观看体验,还能跨越语言障碍,让所有观众都能享受视频的魅力。但怎么给视频加上字幕呢?下面给大家分…

图像及视频的基本操作

文章目录 一、认识计算机中的图像二、图像数据的读取三、数据读取-视频四、图像的其他操作 一、认识计算机中的图像 一张彩色图片是由很多个像素点组合而成的,而一个像素点是由R G B三个通道组成。RGB代表红色(Red)、绿色(Green&a…

Linux系统基础-文件系统

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-文件系统 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 回顾C语言…

RabbitMQ进阶_可靠性

文章目录 一、 发送者的可靠性1.1、 生产者重试机制1.2、 生产者确认机制1.2.1、确认机制理论1.2.2、确认机制实现1.2.2.1、定义ReturnCallback1.2.2.2、定义ConfirmCallback 二、 MQ的可靠性2.1、 数据持久化2.1.1、 交换机持久化2.1.2、 队列持久化2.1.3、 消息持久化 2.2、 …

R语言机器学习算法实战系列(四)随机森林算法+SHAP值 (Random Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述特征选择数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性模型解释保…

C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

MinIO快速入门:开启你的文件存储之旅

在现代应用中,文件存储服务是至关重要的组件之一。像腾讯云的COS(对象存储服务)等云存储服务提供了丰富的功能,但随之而来的云端费用也是开发者无法忽视的问题。本文将介绍一款开源、高性能的对象存储服务——MinIO,它…