UML与面向对象

2023-11-16

文章目录


UML(统一建模语言,Unified Modeling Language)主要以图形的方式对系统进行分析、设计。
任何大规模的系统设计都是相当困难的:

  1. 我们如何与客户沟通,了解客户对系统的需求?
  2. 如何在开发人员之间共享设计,以确保各个部分能够无缝地协作?

在开发复杂的系统时,如果缺乏相应的帮助工具,则很容易曲解或遗忘很多细节,这就是使用UML的原因。

1、面向对象开发

1.1、理解面向对象开发

面向对象(Object-Oriented,OO)不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行求解,以及如何进行系统构造的软件方法学。

概括来讲,面向对象方法的基本思想包括两个主要方面:

  • 一方面是从现实世界中客观存在的食物出发来构造软件系统
  • 另一方面在系统的构造中尽可能地运用人类的自然思维方式

1.2、面向对象的主要概念

对象(Object)从一般意义上来讲,它是现实世界中的一个实际存在的事物。

对象具有自己的状态特性和动作。

1.3、OO开发的优点

面向对象的方法最初用于计算机模拟和图形用户界面,但更常用在信息系统开发上,究其原因是OO开发的优点:

  • 自然性:是指在开发中总是以对象的形式来认识世界,因此当人们分析和设计系统需求时,总是很自然地定义各类对象。
  • 重用性

2、OO开发中三层设计

面向对象开发中,通常把OO系统中相互联系的所有对象分成三类:问题域类、GUI类 和 数据访问类:
在这里插入图片描述

3、UML简介

统一建模语言(UML)仅仅是一种语言,不是一种系统设计的方法,而是系统系统建模的标准。UML经历了多年的研究、发展并不断完善,成为现在诸多领域内建模的首选标准。开发人员主要是用UML来构造各种模型,以便描述系统需求和设计。

3.1、为什么对系统建模

问题:开发人员如何与用户进行沟通以了解系统的需求?开发人员之间如何沟通以确定各个部分能够无缝地协作?这就是为什么需要系统建模。

在系统设计中采用模型化设计的重要原因之一是管理系统设计的复杂性。模型化可以帮助用户从高层理解系统,使用户专注与系统设计的重要部分,手机关键信息,而不需要关心一些无关重要的部分。

3.2、UML的发展

在20世纪80年代,尝试不同方法进行面向对象的分析与设计。其中有少数方法开始在一起关键项目中发挥作用,包括Booch方法、OMT方法、RDD方法、OBA方法和Objectory方法。

20世纪90年代中期,出现了第二代面向对象方法,包括Booch’94、OMT等。面向对象方法已经成为软件分析和设计方法的主流,这些方法所做的最重要的尝试是在程序设计与计算机科学之间寻求合理平衡,来进行复杂软件的开发。

UML是Grady Booch (Booch) 、James Rumbaugh(OMT)和Ivar Jacobson(OOSE)智慧的结晶。

三人曾分别创立自己的建模语言,在1995年前后,决定停此竞争,取三种建模语言的精华,将之融为一体,为软件开发师、架构师和分析师提供一个更方便的工具。他们还加盟到Rational Software Corporation(Rational)公司。这家公司开发工具和软件,以支持基于统一建模语言 的软件设计。

许多公司感到UML能够适应公司的战略目标,因此成立了一个UML联盟。联盟的成员包括DEC、Hewlett-Packard、Intellicorp、Microsoft、 Oracle、 Rational和其他一 些公司。1997年,应“对象管理组织”(OMG) (Object
Management Group )向外界征求标准建模语言的建议,联盟制订了UML 1.0版并提交给OMG。

3.3、UML的构成

UML包括了一些可以相互组合图标的图形元素,以及组合这些元素的语法规则。

UML提供这些图的目地是用多个视图来展示一个系统,这组视图被称为一个模型。

一个UML模型只描述了一个系统要做什么,没告诉我们是如何实施的。

在科学和工程技术领域中模型是一个很有用途的概念。
在最通常的意义下,当我们建立了一个模型后,其实就在运用我们已经了解的很多知识来帮助我们理解暂时还不知道的事物。

在某些领域中,一个模型可能是一组数学方程式;而在另一些领域中,一个模型肯是计算机仿真程序。模型可能有许多种类型。

一个模型是一组UML图, 为了理解和开发一个系统,我们可以检查、获取和修改这些图。

3.3.1、模型、图

UML大科普:一文梳理清 14种 UML图!
在这里插入图片描述
这些图分为结构图和行为图。

1.结构图:
(1)类图

是使用UML建模时最常用的图。它展示了系统中的静态事物、它们的结构以及它们之间的相互关系。这种图的典型用法是描述系统的逻辑设计和物理设计。

(2)构件图

展示一组构建的组织和彼此间的依赖关系。构件图说明系统如何实现,软件系统内构建如何协同工作。

(3)对象图

展示系统中的一组对象。它是系统在某一时刻的快照。对象图是类图在某一时刻的快照。

(4)部署图

展示物理系统运行时的架构。部署图描述系统中的硬件和硬件上驻留的软件。

UML2.0新增了以下几种结构图:

(5)组合结构图

展示模型元素的内部结构。

(6)包图

描绘包之间的依赖关系(包是一个用于组织其他模型元素的通用模型元素)。

(7)用例图
2.行为图:
(1)活动图

显示系统内的活动流。通常需要使用活动图描述不同的业务过程。

(2)状态图

显示一个对象的状态和状态之间的转换。状态图包括状态、转换、事件和活动。状态图是一个动态视图,对事件驱动的行为建模尤其重要。例如,可以利用状态图描述一个电话路由系统中交换机的状态,用状态图对交换机建模有助于理解交换机的动态行为。在UML2.0中,状态图被称作状态机图(state machine diagram)。

(3)合作图

是交互图的一种,交互图还包括顺序图、时间图等。合作图突出对象之间的合作与交互。在UML2.0中,合作图被通信图(communication diagram)所取代。

(4)顺序图

是另一种交互图。顺序图强调一个系统中不同元素间传递消息的时间顺序。
UML2.0增加了下列几种行为图:

(5)时间图

也是一种交互图。它描绘与交互元素的状态转换或条件变化有关的详细时间信息。

(6)交换概述图

是一种高层视图,用于从总体上显示交互序列之间的控制流。

3.3.2、视图

视图定义:一个系统应从不同角度进行描述,从一个角度观察到的系统成为一个视图。
视图有多个图构成,它不是一个图表,而是在某一个抽象层上,对系统的抽象表示。
如果要为系统建立一个完整的模型图,需要定义一定数量的视图,每个视图表示系统的一个特殊方面。另外,视图还把建模语言和系统开发时选择的方法或过程连接起来。

视图包括以下类型:

①用例视图(use-case view)
  • 表示外部参与者看到的系统将提交的功能。
②逻辑视图(logical view)
  • 表示系统内部如何提供系统的功能
  • 静态结构用类图和对象图来描述,动态行为用状态图、时序图、协作图、活动图来描述
③构件视图(component view)
  • 构件视图表示代码构件的组织,描述了实现模块及它们之间的依赖关系。构建视图针对开发者
④进程视图(process view)
  • 表示系统的并发性,包括进程的通信和同步。
  • 用动态图(即状态图、时序图、协作图和活动图)和实现图(即构件图和部署图)来描述。
  • 针对开发者和系统集成者。
⑤部署视图(deployment view)
  • 表示系统的物理部署。
  • 构件被部署到物理结构中的映射,用部署图来描述。
  • 它针对开发者、集成者和测试者。

3.4、UML的主要特点

标准建模语言UML的主要特点可以归结为三点:

  1. UML统一了Booch、OMT和OOSE等方法中的基本概念。
  2. UML还吸取了面向对象技术领域中其他流派的长处。
  3. UML在演变过程中还提出了一些新的概念。在UML标准中新加了模板、职责、扩展机制、线程、过程、分布式、并发、模式、合作、活动图等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interface)和组件(Conponents)等概念。

因此可以认为,UML是一种先进适用的标准建模语言。

3.5、“统一”的含义

UML的含义为统一建模语言,“统一”在UML中的含义:

  • 在以往出现的方法和表示法方面UML合并了许多面向对象方法中被普遍接受的概念,对每一种概念UML都给出了清晰的定义、表示法和有关术语。使用UML可以对已有的各种方法建立的模型进行描述,并比原来的方法描述得更好。
  • 在软件开发的生命周期方面UML对于开发的要求具有无缝性,开发过程中的不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用,而不必去转换概念和表示法。这种无缝性对迭代的增量式软件开发至关重要。

4、UML应用

UML可用于任何面向对象系统开发建模,不仅可以为使用UML进行软件建模,同样可以使用UML对其他非计算机领域系统进行建模,UML常进行一下应用:

  • 信息系统(Information System):向用户提供信息的存储、检索和提交,处理存放在关系或对象数据库中大量具有复杂关系的数据。
  • 技术系统(Technical System):处理和控制技术设备,如电信设备、军事系统或工业过程。
  • 嵌入式系统(Embedded Real-Time System)它以软件的形式来嵌入到硬件设备中从而来控制硬件设备中的运行,通常在手机、家电或汽车等设备上的系统。

5、UML建模

开发软件活动包括两个方面的工作:

  • 对业务和业务规则的理解和表示。
  • 规划和设计软件系统。

由于业务规模和复杂度不断增加,软件的规模和复杂度也不断增长,人们对业务的理解、对软件的设计和构造越来越困难,只有借助UML来表示和理解业务,借助UML来设计和构造软件系统,通过UML来表示和展现系统组成和交互。
在软件开发活动中,UML主要用于两个方面的建模:对业务建模和对要构造的软件建模。

①对业务建模

业务建模的目的是理解业务内容和业务过程。对业务过程建模,除了理解业务内容中规定要做什么,业务是如何进行的,还要识别业务的变更对业务造成的影响。对业务建模,有助于发现业务的优缺点,找出需要改进和优化的地方,在某些情况下还可以对几个可选的业务过程进行仿真。

②对软件建模

软件建模的目的是用UML表示软件的体系和组成,方便软件设计人员理解和修改软件方案,确保软件设计和计划能正确地实现。在设计和计划需要修改时,修改后的软件系统,要经受得起时间的检验。例如,当在一个软件系统
中增加一个组件时,你要保证系统不会因为增加了这个组件而崩溃。

5.1、建模的目的和原则

5.1.1、建模的目的

(1)对业务和软件进行可视化,便于对业务和软件系统的理解和交流。
(2)详细说明系统的组成、结构和系统交互的行为。便于开发人员对系统的宏观理解。
(3)用模型的方法为系统提供一个模板,开发人员依据该模板构造软件系统。
(4)将计划和决策文档化。

5.1.2、建模的原则

(1)仅当需要时,才为业务或软件系统构建模型。
(2)按照实际情况或按我们需要的样式,对业务或软件系统进行建模。
(3)以及解决方案,来构造需要的模型。
(4)最好用一组相对独立的模型,从不同的侧面,描述重要的业务或软件系统。

5.2、为什么要用UML建模

  1. UML是一种公共语言

UML为业务分析员、架构设计师、代码实现者、测试者、数据库设计师和许许多多参与软件设计和开发的人提供了一个公共“语言”,使他们能够理解业务、需求,理解软件和架构如何构造。

  1. UML是一种应用广泛的语言

UML不仅可以用于软件建模,也可以用于业务建模、知识建模、数据库建模、工作流建模、嵌入式系统建模。用同一种语言对不同的领域建模,便于理解和沟通。

  1. UML是一种很好的扩展语言

在UML框架上,用户可以定义和扩展UML语义和语法,建模更方便、更灵活。

5.3、用UML可以建立的模型种类

5.3.1、按产生模型的阶段性分类

  1. 业务模型:展示业务和业务规则的模型。领域专家和需求分析师创建该种模型。
  2. 需求模型:展示应用系统要求和业务要求的模型。需求分析师和系统分析师创建该模型。
  3. 设计模型:设计模型包含架构模型和详细设计模型,架构模型展示软件系统的宏观结构和组成;详细设计模型展示软件的微观组成和结构。架构师设计架构模型,详细设计模型则以资深开发人员为主,架构师提供指导,共同设计。
  4. 实现模型:表示可执行软件的组成要素和关系。以吱声开发人员(设计人员)为主,架构师提供总体指导。
  5. 数据库模型:以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。

5.3.2、按模型的用途分类

  1. 功能模型:从用户的角度展示系统的功能,包括用例图。
  2. 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图。
  3. 动态模型:展示系统的内部行为。包括序列图、活动图、状态图。

6、UML工具

6.1、主要工具介绍:

Rational公司推出的Rose是目前最好的基于UML的Case工具,它把UML有机地集成到面向对象的软件开发过程中。不论是在系统需求阶段,还是在对象的分析与设计、软件的实现与测试阶段,它都提供了清晰的UML表达方法和完善的工具,方便建立其相应的软件模型。使用Rose可以方便地进行软件系统的分析、设计,很容易同常见的开发环境和程序设计语言进行衔接。
Rose具有正向工程、逆向工程和对象模型更新等功能。用户修改模型后可以直接反映到代码上,同样用户对代码框架的修改也可以反映到模型上。同时它还提供对多种程序设计语言的支持,如C++、Java、Visual Basic等。

Visio Professional2000提供内建的UML支持。如Visio绘图工具提供绘制多种图形的功能,这是一个相当有价值的工具。

6.2、使用UML工具应注意方面(指标)

  1. 至少支持UML1.3
  2. 支持项目组的协同开发
  3. 支持双向工程
    正向工程:模型→代码
    逆向工程:代码→模型
  4. HTML文档化
    建模工具应能为对象工具模型及其组件无缝地产生HTML文档。HTML文档应当包括模型中每个图形,以便开发者可以通过浏览器迅速查询,而不需要加载建模工具本身。
  5. 打印支持
    建模工具应能用多个页面把一张大图能够准确地打印出来,并提供打印预览和缩放功能,能够把模型图放置到所需的页数内。最好能够允许将每一张模型图放置在单页中打印
  6. 健壮性
    不能崩溃
  7. 开发平台
    UML工具应该与应用系统保持平台一致。
  8. 提供XML支持
    WML将成为各种工具之间数据交换的标准格式。能够很好地支持XML无疑将成为软件的未来,提供更好的兼容性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UML与面向对象 的相关文章

  • 【手把手】如何使用置信学习cleanlab对数据集进行去噪

    开源代码 https gitee com qq874455953 cleanlab nlp keras 目前可能是数据集选的不好 数据集本身没什么噪声 所以有点小问题 不过总体框架是搭建起来的 前言 在做一个项目的时候 发现数据集噪声非常多
  • Flink 多流转换 (五) 间隔联结(Interval Join)

    文章目录 间隔联结的调用 间隔联结实例 顾名思义 间隔联结的思路就是针对一条流的每个数据 开辟出其时间戳前后的一段时间间隔 看这期间是否有来自另一条流的数据匹配 间隔连接通过一个共同的key连接两个流 A B 中的数据 流 B 的数据具有时
  • 小红书sign算法-python实现

    coding utf 8 import hashlib def md5hex word if isinstance word unicode word word encode utf 8 elif not isinstance word s
  • git submodule拉取子模块最新代码

    转载请注明出处 https blog csdn net hhhhhhhhhhkkkkkkkkkk article details 122698629 之前由于对git子模块操作不熟悉 碰到子模块更新代码了本地死活拉取不到最新代码的问题 在网
  • 快速下载arxiv论文

    国内镜像站 http xxx itp ac cn 获得需要下载的论文id号 官网上会显示论文id 例如下载论文GAN的id为 1406 2661 那么 直接在浏览器上访问网址 http xxx itp ac cn pdf 1406 2661
  • 国密SKF库调用开发指南(一)

    针对支持国密算法USB KEY设备的应用 国家颁布一个行业标准 智能密码钥匙应用接口规范 GM T0016 2012 市面上销售的国密算法的USB KEY设备也都 其实也是必须 支持这个接口规范 因此 只要根据这个规范开发的应用程序 就可以
  • 李开复:数位革命——创新创业的黄金时代

    李开复 数位革命 创新创业的黄金时代 创新工场观点 数位革命 今天的创业时代比任何一个历史时期都能带来更多的机会 何谓 数位革命 看创新工场创始人 董事长兼首席执行官李开复老师如何从我们身处这个时代的六个现象中 看出变革 看出机会 未来是年
  • Vue脚手架的使用

    1 全局安装 vue cli 仅第一次执行 npm install g vue cli 再次输入vue 如果出现版本号 则成功 2 切换到要创建项目的目录 使用命令创建项目 vue create xxxx 3 启动项目 npm run se
  • Egret的2D摄像机实现

    一个Egret的正交摄像机的简单实现 主要功能大致如下 可参考根据实际进行调整 module Camera 一个正交摄像机demo export class Camera 摄像机显示的对象 实际是镜头所对应的世界 m container e
  • OpenCV机器视觉-图片卷积

    图片卷积 图像滤波是尽量保留图像细节特征的条件下对目标图像的噪声进行抑制 是图像预处理中不可缺少的操作 其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性 线性滤波是图像处理最基本的方法 它允许我们对图像进行处理 产生很多不同的
  • 【微信小程序入门到精通】— button 和 image 超详细讲解

    目录 前言 一 button 组件 1 1 指定按钮 属性值 type 1 2 改变按钮尺寸 属性值 size 1 3 使按钮镂空 属性值 plain 1 4 补充 二 image 组件 2 1 构建图片控件 image 2 2 指定图片缩
  • python数据容器--列表的常用操作

    数据容器List 列表的常用操作 List列表的常用操作 1 查找某元素在列表内的下标索引 列表 index 元素 mylist itcast itheima python index mylist index itcast print i
  • 指针的删除

    1 在链表中 将某个指针delete 指向该指针的那个指针的next 不会自动赋值为NULL 需要手动赋值 2 删掉 某指针所指向的内存 该指针仍然可以使用 下面是一个带头指针的单向链表 void Stack Pop int value i
  • 每日一考错题整理

    1 JDK JRE JVM三者之间的关系 以及JDK JRE包含的主要结构有哪些 JDK JRE Java开发工具 javac exe java exe javadoc exe JRE JVM JAVASE核心类库 2 标识符的命名规范有哪
  • JDK8新特性之双冒号 :: 用法及详解

    JDK8新特性之双冒号 用法及详解 转自 https cloud tencent com developer article 1404786 JDK8的新特性有很多 最亮眼的当属函数式编程的语法糖 本文主要讲解下双冒号 的用法 类名 方法名
  • ubuntu:android studio 安装adb调试工具

    adb安装 apt get install android tools adb 远程连接 adb connect 172 26 0 119 5555 遇到端口占用 yangwenlong title71 Android AndroidPro
  • 微服务全栈:深入核心组件与开发技巧

    文章目录 1 服务注册与发现 1 1 客户端注册 ZooKeeper 1 2 第三方注册 独立的服务Registrar 1 3 客户端发现 1 4 服务端发现 1 5 Consul 1 6 Eureka 1 7 SmartStack 1 8
  • firefox 火狐浏览器安装java插件

    由于工作中用到决策引擎产品 FICO Blaze 该产品展示决策流 决策树 决策表等组件是依托的applet 需要浏览器启用java插件 经常碰到明明电脑上装了java 但是浏览器的附加组件中却没有显示 经过一下午的折腾发现了以下几条限制
  • SpringCloud系列教程(1)--开发环境的准备

    开发环境准备 eclipse apache maven 3 5 0 jdk1 8 说明 这个是本人的开发环境工具 也可以使用自己适应的环境 比如 IntelliJ IDEA 但是本系列以eclipse来简述 如果环境不会配置 请自行百度 因

随机推荐

  • Android Studio TraceView性能优化分析

    http blog csdn net androiddevelop article details 8223805 http www cnblogs com sunzn p 3192231 html Android 编程下的 TraceVi
  • ConstraintLayout各种居中设置

    1 全局居中 app layout constraintBottom toBottomOf parent app layout constraintEnd toEndOf parent app layout constraintStart
  • Python基于xlrd模块处理合并单元格

    Excel是我们日常工作中经常使用的电子表格软件 它可以方便地对数据进行整理 计算和分析 在Excel中 有时候需要将多个单元格合并成一个单元格 以便更好地展示数据 但是 在数据处理过程中 合并单元格也会带来不少麻烦 本文将介绍如何使用Py
  • SpringBoot实战(八)集成 Logback

    目录 1 简介 2 项目结构 3 配置文件 3 1 Maven 3 2 logback spring xml 3 3 application yml 4 自定义输出级别 5 项目地址 6 部分内容没有输出到日志文件中问题处理 7 根据开发
  • oauth2.0--基础--6.1--SSO的实现原理

    oauth3 0 基础 6 1 SSO的实现原理 1 什么是SSO 1 1 概念 在一个 多系统共存 的环境下 用户在一处登录后 就不用在其他系统中登录 就可以访问其他系统的资源 用户环境 浏览器 只能同一个浏览器 不会出现A浏览器登录成功
  • Kafka常见的导致重复消费原因和解决方案

    点击上方蓝色字体 选择 设为星标 回复 资源 获取更多资源 大数据技术与架构 点击右侧关注 大数据开发领域最强公众号 暴走大数据 点击右侧关注 暴走大数据 问题分析 导致kafka的重复消费问题原因在于 已经消费了数据 但是offset没来
  • Android Studio 编译Library的jar包与aar包

    编译器 基于Android Studio版本为4 0 2 1 先编译一下工程 jar包 在Project模式下 jar包的位置 build intermediates compile library classes jar debug cl
  • access有效性规则不为空值_在设置access有效性规则中,大于0并且小于100怎么写?...

    展开全部 在有效性e5a48de588b662616964757a686964616f31333433633362规则处输入 gt 0 And lt 100即可 就是了 如果需要不包含0和100 那么就去掉其中的 就可以了 在有效性规则中
  • 完整的php在线加密代码,无私奉上(原创)

    以下是一个示例的完整的PHP代码 用于在网站前台输入PHP代码并生成加密后的代码
  • vue.runtime.esm.js2b0e619 [Vue warn] Error in render “TypeError Cannot read property ‘matched‘

    错误截图 踩坑原因 在配置vue router的路由时和将router实例挂载至Vue实例上时 实例名称没有按照标准 配置vue时 在配置vue router时 我们一般会将路由的映射关系抽成一个数组 就想下面这样 const routes
  • 小程序web-view 跳转到h5 监听返回按钮

    1 跳转到h5之后 先给页面堆栈 然后就可以监听到返回事件了
  • huggingface 自定义模型finetune训练测试--bert多任务

    背景 需要将bert改为多任务 但是官方仅支持多分类 二分类 并不支持多任务 改为多任务时我们需要修改输出层 loss 评测等 如果需要在bert结尾添加fc等也可以参考该添加方式 代码 修改model 这里把BertForSequence
  • MySQL之进阶查询语句

    这里写目录标题 一 按关键字排序 1 单字段升序排列 默认不指定是升序 2 单字段降序排列 3 结合where进行条件过滤 4 多字段排序 查询hp升序排列 相同hp的 id按降序排列 查询先按hp升序排列 相同分数的 id按升序排列 5
  • Golang-常见数据结构Slice

    Slice slice 翻译成中文就是切片 它和数组 array 很类似 可以用下标的方式进行访问 如果越界 就会产生 panic 但是它比数组更灵活 可以自动地进行扩容 了解 slice 的本质 最简单的方法就是看它的源码 runtime
  • llvm版本

    sudo update alternatives install usr bin llvm config llvm config usr bin llvm config 5 0 200 slave usr bin llvm ar llvm
  • RuntimeError:a leaf Variable that requires grad has been used in an in-place

    原文链接 https blog csdn net weixin 43056332 article details 115188116 记录一下训练yolov5碰到的问题 RuntimeError a leaf Variable that r
  • IP地址划分--主机号--子网号

    参考ip讲解 问题 假设一个主机的IP地址是202 112 14 137 掩码是255 255 255 224 主机IP地址的二进制表示11001010 01110000 00001110 10001001 子网掩码的二进制表示 11111
  • Vue3 + TS : Unexpected token,Did you mean `{‘}}` or `&rbrace`

    笔者今天开发的时候遇到了这样一个错误 Unexpected token Did you mean or rbrace 上述的是错误提示 如下图 问题出现的原因 问题出现的原因是因为在上图的73行 我这边做了一个类型的预测 后面获取的dom元
  • LeetCode 2396. 严格回文的数字

    如果一个整数 n 在 b 进制下 b 为 2 到 n 2 之间的所有整数 对应的字符串 全部 都是 回文的 那么我们称这个数 n 是 严格回文 的 给你一个整数 n 如果 n 是 严格回文 的 请返回 true 否则返回 false 如果一
  • UML与面向对象

    文章目录 1 面向对象开发 1 1 理解面向对象开发 1 2 面向对象的主要概念 1 3 OO开发的优点 2 OO开发中三层设计 3 UML简介 3 1 为什么对系统建模 3 2 UML的发展 3 3 UML的构成 3 3 1 模型 图 1