软件设计模式
1.UML
1.1类图表示法
uml类图中,类使用包含类名、属性、方法
属性或方法前的加好和减号表示了这个方法的可见性,可见性的符号有三种:
+表示public
-表示private
#表示protected
1.2 类与类之间关系
关联关系
单向关联
双向关系
自关联
聚合关系
聚合关系是关联关系的一种,是强关联关系,是整体和部分的关系
聚合关系也是通过成员对象来实现的,其中成员对象是整体对象的一部分,成员对象可以脱离整体对象独立存在。带空心菱形的实线来表示
组合关系
组合关系表示类之间的整体与部分的关系,但它是一种更强烈的聚合关系
组合关系中,整体对象可以控制部分对象的生命周期,一旦整体对象不存在了,部分对象也将不存在,部分对象不能脱离整体对象存在,用带实心菱形的实线来实现
依赖关系
依赖关系是一种使用关系,是对象之间耦合度最弱的一种关联关系,是临时性的关联,在代码中,某个类的方法,通过局部变量、方法的参数或静态方法的调用来访问另一个类(被依赖类)中的某些方法来完成一些职责;依赖关系用带箭头的虚线表示,箭头指向被依赖的类
继承关系
是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系;使用空心三角箭头实线表示,箭头从子类指向父类
实现关系
是接口与实现类之间的关系,类中的操作实线了接口中所声明的所有的抽象操作;实现关系用带空心三角箭头虚线来表示,箭头从实现类指向接口
2.软件设计原则
在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性
开闭原则
对扩展开发,对修改关闭
要想达到这样的效果,需要使用接口和抽象类
里式代换原则
里式代换原则:任何基类可以出现的地方,子类一定可以出现。通俗理解为:子类可以扩展父类的功能,但不能改变父类原有的功能。换句话,子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法
依赖倒转原则
高层模块不应该依赖底层模块,两者都应该依赖其抽象
抽象不应该依赖细节,细节应该依赖抽象
简单的说就是要求对抽象进行编程,不要对实现进行编程,这样降低了客户与实现模块间的耦合
3.创建型模式
用于描述"怎样创建对象",主要特点“将对象的创建与使用分离”
提供了单例、原型、工厂方法、抽象工厂、建造者
4.结构型模式
结构型模式描述如何将类或对象按某种布局组成更大的结构,分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象。由于组合关系或聚合关系比继承关系耦合度低,满足"合成复用原则",所以对象结构模式比类结构模式具有更大的灵活性。
结构型模式7种:代理模式、适配器模式、装饰着模式、桥接模式、外观模式、组合模式、享元模式
4.1 代理模式
由于某些原因需要给某对象提供一个代理以控制对该对象的访问,这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。java中的代理按照代理了生成时机不同分为静态代理和动态代理。静态代理在编译器就生成,动态代理在java运行时动态生成。动态代理又有jdk代理和cglib代理。
5.行为模式
用于描述类或对象之间怎样相互协作共同完成单个对象无法单独完成的任务
行为型模式
相关文章:

软件设计模式
1.UML 1.1类图表示法 uml类图中,类使用包含类名、属性、方法 属性或方法前的加好和减号表示了这个方法的可见性,可见性的符号有三种: 表示public -表示private #表示protected 1.2 类与类之间关系 关联关系 单向关联 双向关系 自关联 聚合关…...
Git常见场景命令总结
1、查看远程仓库标签/分支 git ls-remote --tags origin git ls-remote --heads origin2、删除远程仓库标签/分支 git push origin --delete refs/tags/my_tag3、删除本地标签/分支 git branch -d <branch_name>4、修改代码但未add回滚 git checkout -- <file1>…...
面向对象的分析与设计(精品课程)第一章作业
面向对象的分析与设计(精品课程)第一章作业 一. 单选题(共2题,18分)二. 多选题(共3题,27分)三. 填空题(共5题,45分)四. 简答题(共1题&…...

要使用API接口获取淘宝电商平台的数据,您需要遵循以下步骤:
了解API文档和规范:首先,您需要了解淘宝电商平台的API文档和规范,以确定可用的接口和参数。您可以在淘宝开放平台的官方文档中找到这些信息。注册并获取API密钥:在使用API之前,您需要在淘宝开放平台注册并获取API密钥。…...
vue中动态style(如何动态修改伪元素样式)
vue中动态style(如何动态修改伪元素样式)_vue怎么在行内给伪元素加样式_爱上星星的鲸鱼的博客-CSDN博客...

碳当量及相关指数
声明 本文是学习GB-T 713.1-2023 承压设备用钢板和钢带 第1部分:一般要求. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本文件规定了承压设备用钢板和钢带的牌号表示方法、订货内容、尺寸、外形、重量、技术要求、检验 规则、…...
MySQL数据库入门到精通
介绍 终于将黑马程序员 MySQL数据库入门到精通,从mysql安装到mysql高级、mysql优化全囊括这个视频看完了,发现自己之前掌握的数据库知识只能算是个入门,现在将这个视频的笔记整理一下,方便复习。准备按基础篇,进阶篇&…...
【TA】OP-TEE demo学习
前言:工作原因接触Apple软件需要搭建TA环境,涉及到OP-TEE,学习一下 OP-TEE(Open Portable Trusted Execution Environment)是一个开放源代码的可信执行环境(TEE)软件框架。它提供了安全的执行环…...

什么是实时操作系统(UCOS简介)
uC/OS-III官网:Home Page - Weston Embedded Solutions 一、裸机与RTOS介绍 下面我将从不同方面阐述裸机与试试操作系统的区别,从而进一步介绍裸机和实时操作系统 定义: 裸机:裸机指的是没有任何操作系统或软件层的硬件系统。在…...

软考-操作系统
/4操作系统的作用 进程 进程的概念 进程是程序的一次执行过程,没有程序就没有进程 进程可有多个线程,线程可共享资源 进程的两个基本属性: 可拥有资源的独立单位可独立调度和分配资源的基本单位 线程可共享: 内存地址空间代码…...

【EasyExcel】excel表格的导入和导出
【EasyExcel】excel表格的导入和导出 【一】EasyExcel简介【二】EasyExcel使用【1】EasyExcel相关依赖【2】写Excel(1)最简单的写(方式一)(2)最简单的写(方式二)(3)排除模型中的属性字段(4&…...

Unity shader内置standard代码解析
最近有相关需求制作,所以这里编写一个文档,方便后续的流程查看。 下载源码 由于unity内置的shader是无法查看源码的,你需要去官网下载对应版本内置源码查看 在引擎下载那里,会有一个Built in Shaders,下载 打开以后…...
Redis 有序集合操作实战(全)
目录 ZADD 加入有序集 ZCARD 取成员数量 ZCOUNT 计算区间成员数量 ZINCRBY 运算 ZRANGE 取区间成员(升序) ZRANGEBYSCORE 按分值排序取成员 ZRANK 取成员排名 ZREM 移除成员 ZREMRANGEBYRANK 按位置区间批量移除 ZREMRANGEBYSCORE 按分值区间移除 ZREVRANGE 取区间成…...
化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设
化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设 化工DCS/SIS/MIS系统时钟同步(NTP服务器)建设 目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。 随着计算机网络应用的不断涌现,计算机的时间同步问…...

计算机网络工程师多选题系列——操作系统
得多选者得天下啊同志们! 摘录按照章节顺序,但事实上各章节习题有交叉。 1 操作系统 1.1 操作系统概论 操作系统的主要功能:进程管理、存储管理、文件管理、设备管理和用户接口。 操作系统的主要功能——设备管理:为用户程序提…...

matlab读写json文件
Background 通常,在matlab中使用mat文件进行数据存储。MAT文件是MATLAB中用来存储数据的二进制文件格式。MAT文件可以包含各种数据类型,包括数字、矩阵、向量、结构体、字符和函数等。但是,当和其他语言有交互时,mat文件会不太方便…...
数据治理-数据仓库环境
数据仓库环境包括一系列组织起来以满足企业需求的架构组件,从源系统流动到数据暂存区,数据可以在这里被清晰,当数据集成并存储在数据仓库或操作数据存储中时,可以对其进行补充丰富。在数据仓库中,可以通过数据集市或数…...

DevOps与CI/CD常见面试问题汇总
01 您能告诉我们DevOps和Agile(敏捷)之间的根本区别吗? 答:尽管DevOps与敏捷方法(这是最流行的SDLC[Software Development Life Cycle]方法之一)有一些相似之处,但两者在软件开发方面都是根本不同的方法。以下是两者之…...

OJ练习第178题——收集树中金币
收集树中金币 力扣链接:2603. 收集树中金币 题目描述 给你一个 n 个节点的无向无根树,节点编号从 0 到 n - 1 。给你整数 n 和一个长度为 n - 1 的二维整数数组 edges ,其中 edges[i] [ai, bi] 表示树中节点 ai 和 bi 之间有一条边。再给…...

uni-app打包iOS ipa文件后不上架App store为用户提供下载解决过程记录
写在前面,itms-services协议是什么 itms-services协议是苹果提供的一种让iOS应用在用户设备上无线安装或升级的协议。 具体来说: itms-services表示iOS应用无线安装服务的URL方案,格式为:itms-services://?actiondownload-manifest&urlMANIFEST_URL其中MANIF…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

[大语言模型]在个人电脑上部署ollama 并进行管理,最后配置AI程序开发助手.
ollama官网: 下载 https://ollama.com/ 安装 查看可以使用的模型 https://ollama.com/search 例如 https://ollama.com/library/deepseek-r1/tags # deepseek-r1:7bollama pull deepseek-r1:7b改token数量为409622 16384 ollama命令说明 ollama serve #:…...