设计模式的艺术P1基础—2.1 uml概述

设计模式的艺术P1基础---2.1 uml概述

设计模式的艺术P1基础---第2章 UML类图与面向对象设计原则

UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设计模式解法的核心组成部分。学一个设计模式,如果不能绘制和理解其结构图,基本上等于没学。

面向对象设计原则是评价每个设计模式应用效果的重要依据。每个模式都符合一个或多个面向对象设计原则。这些原则都是从无数项目中提取出来的经验性原则,它们为消除软件设计和实现中的"臭味(Bad Smell)"而诞生,力图为当前系统提供最好的设计方案。

常用的面向对象设计原则包括7个,分别是单一职责原则、开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成复用原则和迪米特法则。

很多传说中的"武功秘籍"并不全是文字,通常都配有图片,因为与文字相比,图形更加直观易懂。与这些"武功秘籍"相似,设计模式通常也结合一些图形来进行描述,其中最常用、使用最广泛的图形描述技术就是UML(Unified Modeling Language,统一建模语言)。

在2003年6月的OMG技术会议上,UML 2.0获得正式通过,UML的发展与应用也上升到一个新的高度,越来越多的人开始学习和使用UML来进行软件建模。

UML名称中所包含的3个单词正是UML特性的体现:


1.UML通过统一的表示方法,让不同知识背景的领域专家、系统分析设计人员和开发人员以及用户可以方便地交流。

2.UML是一种通用的可视化建模(Modeling)语言,不同于编程语言,它通过一些标准的图形符号和文字来对系统进行建模,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档

3.UML是一种语言(Language),也就意味着它有属于自己的标准表达规则,它不是一种类似Java的编程语言,而是一种分析设计语言,也是一种建模语言。

UML是一种由图形符号表达的建模语言,其结构主要包括以下几个部分:

1)视图(View):UML视图用于从不同的角度来表示待建模系统。视图是由许多图形组成的一个抽象集合,在建立一个系统模型时,只有通过定义多个视图,每个视图显示该系统的一个特定方面,才能构造出该系统的完整蓝图

2)UML视图包括用户视图、结构视图、行为视图、实现视图和环境视图。其中,用户视图以用户的观点表示系统的目标,它是所有视图的核心,用于描述系统的需求;结构视图表示系统的静态行为,描述系统的静态元素,如包、类与对象,以及它们之间的关系;行为视图表示系统的动态行为,描述系统的组成元素(如对象)在系统运行时的交互关系;实现视图表示系统中逻辑元素的分布,描述系统中物理文件以及它们之间的关系;环境视图表示系统中物理元素的分布,描述系统中硬件设备以及它们之间的关系。

2)图(Diagram):UML图是描述UML视图内容的图形。最新的UML 2.0提供了13种图,分别是用例图(Use Case Diagram)、类图(Class Diagram)、对象图(Object Diagram)、包图(Package Diagram)、组合结构图(Composite Structure Diagram)、状态图(State Diagram)、活动图(Activity Diagram)、顺序图(Sequence Diagram)、通信图(Communication Diagram)、定时图(Timing Diagram)、交互概览图(Interaction Overview Diagram)、组件图(Component Diagram)和部署图(Deployment Diagram),通过它们之间的相互结合可提供待建模系统的所有视图。其中,用例图对应用户视图,类图、对象图、包图和组合结构图对应结构视图,状态图、活动图、顺序图、通信图、定时图和交互概览图对应行为视图,组件图对应实现视图,部署图对应环境视图。

3)模型元素(Model Element):模型元素是指UML图中所使用的一些概念,它们对应于普通的面向对象概念,如类、对象、消息以及这些概念之间的关系,如关联关系、依赖关系、泛化关系等

4)通用机制(General Mechanism):UML提供的通用机制为模型元素提供额外的注释、信息和语义,这些通用机制也提供了扩展机制,允许用户对UML进行扩展,如定义新的建模元素、扩展原有元素的语义、添加新的特殊信息来扩展模型元素的规则说明等,以便适用于一个特定的方法或过程、组织或用户

相关推荐
BD_Marathon22 分钟前
七大设计原则介绍
设计模式
YigAin3 小时前
Unity23种设计模式之 享元模式
设计模式·享元模式
范纹杉想快点毕业16 小时前
实战级ZYNQ中断状态机FIFO设计
java·开发语言·驱动开发·设计模式·架构·mfc
茂桑20 小时前
DDD领域驱动设计-基础设施层
设计模式·架构
Minilinux20181 天前
工具使用系列之 PlantUML画UML时序图
uml·plantuml·统一建模语言·sequence·时序图
小湘西1 天前
UML 用例图图中包含和扩展区别
uml·设计规范·设计语言
明洞日记1 天前
【图解软考八股034】深入解析 UML:识别标准建模图示
c++·软件工程·软考·uml·面向对象·架构设计
小温冲冲1 天前
通俗且全面精讲工厂设计模式
设计模式
进击的小头1 天前
设计模式与C语言高级特性的结合
c语言·设计模式
小温冲冲1 天前
通俗且全面精讲单例设计模式
开发语言·javascript·设计模式