中级软件设计师备考---UML

news2024/11/17 20:35:42

目录

    • 面向对象的基础概念
    • 面向对象的设计原则
    • UML的各类图
    • 设计模式
      • 对比
      • 分类

面向对象的基础概念

【只介绍一些我个人不太熟悉的概念】

  • 继承和泛化:泛化和继承可以理解为是一个逆过程:泛化就是有子类抽象出一个父类,而继承就是由父类具体化一个子类。
  • 接口:只是一种形式,接口自身不能做任何事情【只是说明操作应该做什么( What),但没有定义操作如何做( How)】。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。
  • 组件:是系统中实际存在的可更换部分,它实现特定的功能,符合一套接口标准并实现一组接口【可理解为具有一定功能、能够独立工作或同其他组件组合起来协词工作的对象】。在UML的定义中,组件之间唯一的关系就是依赖。
  • 模式:一个名词。每一个模式描述了一个不断重复发生的问题,以及该问题的解决方案。设计模式通常是对于某一类软件设计问题的可重用的解决方案。
  • 复用:一个动词。软件复用是指将已有的软件及其有效成分用于构造新的软件或系统。

面向对象的设计原则

  • 单一职责原则:设计目的单一的类
  • 开放-封闭原则:对扩展开放、对修改封闭
  • 李氏(Liskov)替换原则:子类可以替代父类
  • 依赖倒置原则:依赖于抽象而不是具体实现;针对接口编程而不是实现编程
  • 接口隔离原则:使用多个专门的接口比使用单一的总接口要好
  • 组合重用原则:尽量使用组合而不是继承关系来实现重用
  • 迪米特(Demeter)原则【最少知识原则】:一个对象应当对其它对象有尽可能少的了解

选择题:面向对象的软件设计原则是:迪米特法则的应用。

UML的各类图

在这里插入图片描述

  • 用例图的分类不定,但大部分时候归为动态。
  • 部署图:是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。

设计模式

对比

  • 架构模式:软件设计中的高级决策,例如C/S
  • 设计模式:只要关注软件系统的设计,与具体的实现语言无关
  • 惯用法:通过某种特定的程序设计语言来描述构件与构件之间的关系

分类

  • 创建型模式:工厂方法模式【类模式/对象模式】、抽象工厂模式、原型模式、单例模式、构建器模式
  • 结构型模式:适配器模式【类模式/对象模式】、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式
  • 行为型模式:职责链模式、命令模式、解释器模式【类模式/对象模式】、迭代器模式、中介者模式、备忘录模式、状态模式、观察者模式、策略模式、模板方法模式【类模式/对象模式】、访问者模式
    (以上,无特别标识的都为对象模式)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员崩溃的N个瞬间

说到程序员,在外界眼里,他们是掌控代码的大神,他们是改变世界的王者。其实程序员的工作不容易,不信,就来看看程序员崩溃的各种瞬间—— 01、公司实习生找bug 02、在调试时,将断点设置在错误的位置 03、当我…

eventMesh 本地搭建记录

官方文档: Apache EventMesh (Incubating) | Apache EventMesh (作为整体了解 可以先看看架构) 按照官方文档需要搭建服务 eventmesh-store 文档推荐的是 rocketmq docker pull apache/rocketmq:4.9.4 部署rmq 的过程 1.nameServer docker run -d -p 9876:9876 -v pwd/d…

NECCS|全国大学生英语竞赛C类|词汇和语法|语法题|时态 非谓语动词 |19:00~20:15|完形填空·词性转化

14:35~14:45 15:45~16:2019:00~20:15 http://t.csdn.cn/XbsUy 目录 (一)时态 7. 将来进行时 8. 过去将来进行时 9. 现在完成时 10. 过去完成时​编辑 11. 将来完成时 12. 现在完成时 13. 过去完成进行时 (…

David Silver Lecture 4: Model-Free Prediction

1 Introduction 任务:第三章使用动态规划方法,解决known的MDP问题,这章通过model free prediction对一个unknown的MDP估计他的value function。下一章通过Model free control的方法针对一个unknown的MDP optimise value function。 2 Monte…

密码学【java】初探究加密方式之消息摘要

文章目录 一 消息摘要1.1 消息摘要的特点1.2 消息摘要常见算法1.3 数字摘要的运用举例:1.4 字符串数字摘要演示1.5 其他数字摘要算法演示1.6 获取文件消息摘要 一 消息摘要 消息摘要(Message Digest)又称为数字摘要(Digital Digest)它是一个…

Feign组件的使用及开发中使用方式

在微服务的服务集群中服务与服务之间需要调用暴露的服务.那么就需要在服务内部发送http请求, 我们可以使用较为老的HttpClient实现,也可以使用SpringCloud提供的RestTemplate类调用对应的方法来发送对应的请求。 说明: 现在有两个微服务一个是…

java反序列化cc3链分析

前言 休息完五一,继续卷,原本想结束cc链的,但是发现cc3链好像用的方法不太一样,感觉也是可以记录下来,这里感觉cc3链有一些像cc1链的变种,就像是给你一些绕过的操作 在说一句,白日梦组长永远的神…

使用开源的zip.cpp和unzip.cpp实现压缩包的创建与解压

目录 1、使用场景 2、压缩包的创建 3、压缩包的解压 4、CloseZipZ和CloseZipU两接口的区别 5、开源zip.cpp和unzip.cpp文件的下载 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/…

低代码平台组件间事件交互

事件的分类 我们主要依托于事件来进行组件间的交互。为了满足组件与组件、组件与系统、组件与服务端的交互,我们大致可以将事件分为三个类别: 组件方法:每个组件都会暴露出一些方法供其他组件进行调用。例如表格组件,我们可以暴…

Ubuntu18.04 设置 root 用户登录

Ubuntu18.04 设置 root 用户登录 1 设置 root 密码2 设置 root 登录 1 设置 root 密码 Ubuntu 安装后,root 用户默认是被锁定的,无法登录。Ubuntu 默认的 root 密码是动态随机的,我们的系统每次启动后都是不一样的,那么要使用 ro…

【滤波】多元高斯

本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第5章节05-Multivariate-Gaussians(多元高斯)。 %matplotlib inline#format the book import book_format book_format.set_style()简介 上一篇文章中的技术非常强大,但它们只…

[chapter 31][PyTorch][Early Stop Dropout]

前言 深度神经网络结构的过拟合是指 : 在训练集上的正确率很高, 但在测试集上的准确率很低. 为了缓解网络过拟合的问题, 其中一种常见的办法是使用 dropout ,Early Stop 目录: 1: Early Stop 2: Dropout 3: stochastic Gradient Descent 一 Earl…

平面设计师都在用的设计素材网站,免费下载~

很多新手设计师不知道去哪里找高清、免费的设计素材,今天我就给大家推荐5个设计素材网站,免费下载,赶紧收藏起来把! 1、菜鸟图库 https://www.sucai999.com/?vNTYwNDUx 菜鸟图库是我推荐过很多次的网站,主要是站内素…

白宫召见科技巨头 讨论AI潜在风险 以确保人们从创新中受益

ChatGPT的问世,被认为是通用人工智能发展的“奇点”和强人工智能即将到来的“拐点”,甚至有业内人士推测所有数字化系统和各个行业都可能被其重新“洗牌”。 乐观主义者表示,人工智能的核心是对人类大脑的模拟,其目的是延伸和增强…

C++Primer 第一章

C概述 程序的组成 数据的集合算法的集合 面向对象编程:我们通过一组数据抽象来建立问题的模型,简单来说就是把一些数据封装起来,就是我们类 面向过程编程:一个问题可直接由一组算法来建立模型 第一章 开始 1.1 问题的解决 这里有一个简单的例子来让我们看看如何设计编程思路…

C++ 的类型转换

目录 1. C语言中的类型转换 2. C强制类型转换 2.1static_cast 2.2 reinterpret_cast 2.3 const_cast 2.4 dynamic_cast 3. RTTI(了解) 1. C语言中的类型转换 在 C 语言中,如果 赋值运算符左右两侧类型不同,或者形参与实参类型不…

华为OD机试真题-扑克牌大小【2023】【JAVA】

一、题目描述 扑克牌游戏大家应该都比较熟悉了,一副牌由54张组成,含3~A、2各4张,小王1张,大王1张。牌面从小到大用如下字符和字符串表示(其中,小写joker表示小王,大写JOKER表示大王&#xff09…

【linux的学习】

文章目录 linux的学习一、工具安装与联网?二、Linux软件安装1.安装jdk2.安装MySQL2.读入数据 总结 linux的学习 一、工具安装与联网? 1.1安装好VM后 进入vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后ip addr 查看ip 1.2打开IDEA的tools 二、…

Jpeg算法

Jpeg算法: JPEG会分析图片的各个部分找到并删除人眼不易察觉的元素。使用jpeg算法的时候可以选一个叫’质量’的可变数值来决定压缩的程度,压缩过多的时候我们会得到有缺陷的方框,叫做膺像。 压缩算法之所以有用的原因:人的眼睛并…

Linux开发工具大全 - 软件包管理器yum | vim编辑器 | gcc/g++编译器 | 自动化构建工具Make/Makefile | gdb调试工具

目录 Ⅰ. Linux 软件包管理器 yum 一、yum 背景知识 二、yum 的基本使用 1、查看软件包 2、软件包名称构成 3、安装软件 4、卸载软件 Ⅱ.vim编辑器 一、认识vim 1、vim概念 2、模式及其切换 二、vim使用 1、vim的指令(重要) 命令模式 插…