设计模式的艺术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进行扩展,如定义新的建模元素、扩展原有元素的语义、添加新的特殊信息来扩展模型元素的规则说明等,以便适用于一个特定的方法或过程、组织或用户