【设计模式】学习笔记01——统一建模语言基础知识

前言

设计模式是非常好的课程,我认为是在实践开发中最有用的课。设计模式并不是针对具体技能的学习,它是最能体现出程序设计这一概念的课程。作为一个有点强迫症的人,我非常希望我撰写的代码能够非常优雅,统一,易用。我觉得设计模式并不是由谁发明的,就像“此曲只应天上有 ,妙手偶得之”那般,设计模式是代码构筑中最符合现实的自然沉淀。

学习它,我希望能够使用它,也许在不久后随着我的技术成长,我会更加地理解它。

UML简介

UML(Unified Modeling Language)是可视化的标准建模语言,是用来描述和分析软件系统的语言。开发者们可以使用UML互相交流,提前确定规划等。

UML的结构

1. 视图(View)

        UML在建模过程中,使用不同的视图来从不同的角度描述软件系统。UML包括5种视图。

        用户视图: 以用户的观点表示系统的目标,是所有视图的核心,描述系统的需求。

        结构视图:描述系统的静态行为,描述系统的静态元素如包、类与对象,以及它们之间的关系。

        行为视图:表示系统的动态行为,描述系统组成元素在系统动起来之后的交互关系。

        实现视图:表示系统物理文件以及它们之间的关系。

        环境视图:描述系统中硬件设备以及它们之间的关系。

2. 图(Diagram)

        主要提供若干类型的图与上述五种类型的视图进行对应。

        用户视图: 用例图

        结构视图:类图、对象图、包图、组合结构图

        行为视图:状态图、活动图、顺序图、通信图、定时图、交互概览图

        实现视图:组件图

        环境视图:部署图

        设计模式的研究主要使用类图、状态图和顺序图。

3. 模型元素(Model Element)

     模型元素是包含事务以及事务与事务之间的联系。每一个模型元素都有一个与之相对应的图形元素(类、对象、消息、组件、节点等),以及它们之间的关系(关联关系、泛化关系、依赖关系)。

4. 通用机制(General Mechanism)

      通用机制为模型元素提供额外的注释、修饰和语义。主要包括规格说明、修饰、公共分类和扩展机制四种。

UML的特点

1. 工程化:UML引入后使得软件开发成为工程学科,因为我们可以根据需求创建模型,再通过模型来指导实施。以此,我们可以减少系统开发风险,降低开发和维护成本。

2. 规范化:一套标准,大家都用,高效沟通。

3. 可视化:图形符号促进对问题的理解和交流,直观发现问题,交流更加便捷。

4. 系统化:提供5大视图和13种图,从不同角度解释一个系统。

5. 文档化:使用UML设计时,产出系统设计文档,程序员基于这些文档更清楚项目,节省学习时间、提高修改效率、降低维护成本。

6. 智能化:一些工具可以一键生成代码,或者通过代码反推UML。

类图

类与类图

UML类图种,类一般由:类名、属性、操作(方法)三部分组成。

类的属性:+代表public   #代表protected   - 代表private

操作部分:+/#/-同上,先写方法名括号种带参数,冒号后面跟返回值

类之间的关系

关联关系

表示两个类之间有关系。通常将一个类对象作为另一个类的属性,类和类之间用实线连接。

UML中的关联关系通常有以下几种类型。

双向关联

比如顾客购买商品,商品被顾客拥有。

单向关联

比如顾客拥有地址。

自关联

比如系统中可能会存在一些类的属性对象为自身。

多重性关联

反映的是类的对象之间的链接个数。

 

 

聚合关系

 聚合关系描述的是整体与部分的关系,但是聚合中,部分离开整体依然独立存在!

比如汽车和引擎,引擎离开了汽车依然运转。

组合关系

 组合关系描述的是整体和部分的关系,但是在组合中,整体和部分有统一的生命期,同生共死,谁离开谁都不好使。

比如人与头、嘴巴之间的关系。

依赖关系

是一种使用的关系,特定事物的改变有可能会影响到使用该事物的其他事物。体现在某个类的方法使用另一个类的对象作为参数。带箭头的虚线表示,依赖的一方指向被依赖的一方。

泛化关系

泛化关系指的就是继承关系,使用带空心箭头的实现表示,由子类指向父类。

接口与实现关系

接口规定动作,继承的类需要接受这种规范。使用虚线空心箭头表示,从继承的类指向接口。

 

顺序图

顺序图定义

顺序图用来强调对象间消息传递次序的交互图,又称为时序图或者序列图。

需求分析阶段的顺序图:主要用于描述用例中的对象之间的交互,可以使用自然语言来绘制,用于细化需求。

系统设计阶段的顺序图:确切表示设计中对象之间的交互,对象之间通过方法传递消息,使用专业术语命名等。

顺序图的组成元素和绘制

 

 

状态图

状态图定义

状态图描述一个特定对象的所有可能状态及引起状态转移的事件。通常用状态图来描述单个对象的行为,并不是所有的类都需要使用状态图来描述行为,只有那些具有重要交互行为的类,才会使用状态图描述。

一个状态图包括一系列的状态和状态之间的转移。

状态图组成元素与绘制

 

  • 34
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
cda备考学习学习笔记——基础知识篇(二)主要涉及了计算机科学与技术领域的基本概念和知识。 首先,它介绍了计算机网络的基础知识。网络是将多台计算机通过通信链路连接起来,使它们能够相互通信和共享资源的系统。笔记中详细介绍了网络的组成、拓扑结构和通信协议等重要内容。 其次,笔记还解释了计算机系统的基本组成。计算机系统由硬件和软件两部分组成,其中硬件包括中央处理器、存储器、输入输出设备等,而软件则分为系统软件和应用软件。笔记详细介绍了各种硬件和软件的功能和作用。 此外,笔记还对数据库管理系统进行了介绍。数据库管理系统是一种用于管理和组织数据的软件系统,它能够实现数据的存储、检索和更新等操作。笔记中详细介绍了数据库的概念、结构和操作等内容。 最后,笔记还包括了算法和数据结构的基础知识。算法是解决问题的一系列步骤和规则,而数据结构则是组织和存储数据的方式。笔记中介绍了常用的算法和数据结构,如排序算法、树和图等。 总之,通过学习CDA备考学习笔记中的基础知识篇(二),我们能够更好地理解计算机网络、计算机系统、数据库管理系统以及算法和数据结构等相关概念和知识。这些基础知识对于我们深入研究计算机科学与技术领域是非常重要的,也为我们日后的学习和工作奠定了坚实的基础。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值