类图

UML类图中箭头和线条的含义和用法

Deadly 提交于 2020-03-12 19:41:27
文章转载自http://blog.csdn .NET /hewei0241/article/details/7674450 1.UML中关系 本节向大家学习一下UML箭头、线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条来实现。 关系 后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。 依赖(Dependency) 实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。 图D 关联(Association) 实体之间的一个结构化关系表明对象是相互连接的。UML箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在 Java 中,关联(图E)转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity

UML类图

走远了吗. 提交于 2020-03-12 19:33:40
1. UML类图是什么 UML是统一建模语言,是一种可视化的面向对象建模语言,是一种用来对真实世界物理进行建模的标准标记,用图形方式表现典型的面向对象系统的整个结构。 如果把软件当作房子,那么类图就是房子的施工图了. 通过类图,就能实际的把系统中的各个类,即对象描述清楚,下一步就是按照这个详细的设计编码了。 2. 工具下载&使用 我用的是Enterprise Architect 12.1(以下简称EA)这个工具画UML类图的,这个工具十分强大,还可以把数据库的表逆向生成UML图. Enterprise Architect下载 2.1 创建新项目 安装成功后我们来创建一个项目小试身手. 这里的东西是模板自动生成的,可以点击看看,学习一下.我这里都删了,然后重新创建. 2.2 创建类图 创建一个类: 详细页设置属性和方法: 设置属性: 设置方法: 一个类就创建好了: 再来个简单的例子 : 我们有一个动物的接口、狗的抽象类,还有一个泰迪的类,它们的关系是泰迪继承狗的抽象类,狗的抽象类实现动物接口,它们都有一个公共的叫声(cry)方法. 用UML类图画一下它们三个的关系. 2.3 EA添加复杂类型参数的方法 点击类图的添加方法和参数,只能选择基本类型,那么如何创建复合类型的返回值呢. 现在我们已经对类图的基本结构、访问修饰符在类图的符号有了一个基本的了解, 接下来做一个进阶一点的学习. 3

面试之线程池底层剖析

半世苍凉 提交于 2020-03-12 11:29:14
线程池类图 Executor==>ExcutorService==>AbstractExecutorService==>ThreadPoolExecutor来分析一下。 上面url继承类图,线程池的最顶层的接口是Executor,这个接口只有一个方法void execute(Runnable command) ExecutorService继承Executor,新增了submit(Runnable(Callable)),shutDown,shutDownNow等几个主要方法 AbstractExecutorService实现了上面的ExecutorService接口的若干个方法。 ThreadPoolExecutor继承AbstractExecutorService,实现了线程池的一些主要的方法execute(Runnable)。 AbstractExecutorService AbstractExecutorService实现了submit方法,代码如下: submit(Callable task)方法 public <T> Future<T> submit(Callable<T> task) { if (task == null) throw new NullPointerException(); RunnableFuture<T> ftask = newTaskFor

装饰者模式(Decorator pattern)

半城伤御伤魂 提交于 2020-03-12 04:54:16
说起来惭愧,在某群解答别人问题时居然回答错误,羞煞我也。为此特地补习一下。 :( 装饰者模式 作用: 动态给对象添加职责 典型案例: 在一般的留言本中(支持UBB)输入文本,按B设置为粗体,I为斜体,实际上就是给文本动态的加上了<b>文本</b>,<I>等文字环绕</I>,而后通过解释器进行替换于是就有了最终页面的效果。这样的思路是很简单的,然而对于面向对象的实现方式来说其实还是有点麻烦的. 鉴于关于文本的例子过多,我们这里举的例子采用Stream的简化版本 类图: 对于.Net Framework中存在N种流, FileStream, MemoryStream, BinaryStream, NullStream等等,无非这些Stream都是Stream的确定实例,而通过CryptoStream的子类来对各种流进行加密解密等等功能的操作,在我们的类图里使用SecurityStream和子类HashedStreamDecorator, SHAStreamDecorator等来表示 关于实现的代码的方式则很简单,相信读者通过类图即可得到程序。实际BCL中的Stream会麻烦许多,会有很多的虚方法,Read, Seek,同步流,异步流等等,然而架构是一样的 关于动态职责的添加还有很多实现,这里还有一种AOP的方法, :) http://msdn.microsoft.com/en-us

UML类图画法说明

[亡魂溺海] 提交于 2020-03-10 23:43:19
1.注释(comment) 对类图的补充说明,可以附加在任何元素上,通过虚线连接被注释元素。 如下图: 2.类(Class) 在面向对象(OO)编程中,类是对现实世界的一组具有相同特征物体的抽象。在UML类图中,类使用包含类名,属性(field)和方法(method)且带有分割线的矩形来表示。 如下图: 3.接口(Interface) 接口是一种特殊的类,具有类的结构但不可被实例化,只可以被实现(继承)。在UML类图中,接口有两种表示方式:普通接口表示法(飞翔);棒棒糖表示法(讲人话)。接口名称通常以大写字母I(interface)开头。 如下图: 4.类与类之间的关系(relation) (1)依赖(Dependency) 只要在类中用到的对方,他们之间就存在依赖关系。虚线箭头。 (2)关联(Association) 依赖关系的特例。实线箭头。具有导航性,多重性。 (3)继承(Inheritance) 即泛化关系,是依赖关系的特例。空心三角形+实线。 (4)实现(Realization) 依赖关系特例,依赖关系更强。空心三角形+虚线。 (5)聚合(Aggregation) 整体和部分的关系,整体和部分可以分开。是关联关系的特例。具有关联的导航性,多重性。带空心菱形的实线,菱形指向整体来表示。 (6)组合(Composition) 也是整体与部分的关系,但不可分开。实心菱形+实线。

类图及类图中的关系

不羁的心 提交于 2020-03-06 08:19:38
1.类图和对象图 类图(Class Diagram)是显示出类、接口以及他们之间的静态结构与关系的图。其中最基本的单元是类或接口。 类图不但可以表示类(或者接口)之间的关系,也可以表示对象之间的关系。下面是一个典型的类图: 类图一般分为几个部分:类名、属性、方法。下面分别讲解。 (1)类名 上面的Car就是类名,如果类名是正体字,则说明该类是一个具体的类,如果类名是斜体字,则说明类是一个抽象类abstract。 (2)属性列表 属性可以是public、protected、private。public前面的图标是菱形,protected对应的是菱形加钥匙,private对应的是菱形加锁。当然,这只是一种表现方式。我是用的是Rational Rose,如果用的是别的软件,还可能使用+、-、#表示:+代表public、-代表private、#代表protected。 (3)方法列表 方法可以是public、protected、private。public前面的图标是菱形,protected对应的是菱形加钥匙,private对应的是菱形加锁。当然,这只是一种表现方式。我是用的是Rational Rose,如果用的是别的软件,还可能使用+、-、#表示:+代表public、-代表private、#代表protected。 对于静态属性,属性名会加上一条下划线。如上图所示。 此外

UML类图

拥有回忆 提交于 2020-03-06 08:13:50
UML类图 基本描述: 用于描述类(对象)本身的组成 和 类(对象)之间的各种静态关系。 类之间的关系:依赖、继承(泛化)、实现、关联、聚合与组合。 一、依赖关系 只要是类中用到了对方,那么他们就存在依赖关系。 包括以下几个方面 1)类的成员属性 2)方法的返回类型 3)方法的接收参数 4)方法中使用到 public class PersonServiceBean{ // 类成员属性 private PersonDao personDao; // 方法返回类型 public IDCard getIDCard(Integer personid){} // 方法接收参数 public void save(Person person){} // 方法中使用到 public void modify){ Department department=new Department); } } public class PersonDao{} public class IDCard{} public class Person{} public class Department{} 二、泛化(继承)关系 如果A继承了B,那么A和B存在泛化关系 三、实现关系 比如A实现B的接口,即存在实现关系 四、关联关系 关联关系实际就是类与类之间的联系 五、聚合和组合关系 表示整体和部分的关系: 聚合中

软件设计模式学习(一)统一建模语言

久未见 提交于 2020-03-04 03:45:32
UML简介 统一建模语言(UML)是一种可视化的标准建模语言,通过UML可以构造软件系统的蓝图。在设计模式中,使用UML来分析和设计每一个模式的结构,描述每一个模式实例,帮助我们深入理解设计模式。比如要盖一栋房子,需要先设计图纸,设计图纸就是一种设计语言,也就是模型语言。在一个现代化工程中,人们要沟通和协作,就必须使用标准的工业化设计语言,通过建模进行描述,把所要设计的结构和系统的行为联系起来,对系统的结构进行可视化控制。 UML结构 UML是由图形符号表达的建模语言,其主要包括以下几个部分: 视图 使用不同的视图从不同角度来描述软件系统,包括:用户视图、结构视图、行为视图、实现视图、环境视图。 图 提供了十三种与上述五种视图相对 用例图对应用户视图。类图、对象图、包图、组合结构图对应结构视图。状态图、活动图、顺序图、通信图、定时图、交互概览图对应行为视图。组件图对应实现视图。部署图对应环境视图。 模型元素 模型元素包括事物以及事物之间的联系。 通信机制 为模型元素提供额外的注释、修饰和语义。 类图 类图是使用频率最高的UML图之一,在设计模式中,我们将使用类图来描述一个模式的结构,通过类图来分析每一个模式实例。 类与类图 类封装了数据和行为,是面向对象的重要组成部分。类图则用于描述系统中不同类以及它们之间的关系,表达系统的静态结构。 类之间的关系 在软件系统中,类不是孤立存在的

UML类图

最后都变了- 提交于 2020-03-02 13:14:58
类 不同访问的访问权限对应符号:(限PHP语法) -表示private #表示protected +表示public _下划线表示static 斜体表示抽象 类和类之间的关系▶ 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency) 泛化:——▷ 实现:棒棒糖表示法,🍭 关联:——> 聚合:◇——> 组合:♦——> 依赖:---> 来源: https://www.cnblogs.com/aworkstory/p/12394682.html

UML建模之类图&包图&对象图

微笑、不失礼 提交于 2020-03-01 14:56:10
类图 类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统。类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响。 下面是一个顾客从零售商处预定商品的模型的类图。中心的类是Order。连接它的是购买货物的Customer和Payment。Payment有三种形式:Cash,Check,或者Credit。订单包括OrderDetails(line item),每个这种类都连着Item。 UML类的符号是一个被划分成三块的方框:类名,属性,和操作。抽象类的名字,像Payment是斜体的。类之间的关系是连接线。 类图有三种关系。 关联association-表示两种类的实例间的关系。如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联。在图中,关联用两个类之间的连线表示。 聚合aggregation-当一个类属于一个容器是的一种特殊关系。聚合用一个带菱形的连线,菱形指向具有整体性质的类。在我们的图里,Order是OrderDetails的容器。 泛化generalization-一个指向以其他类作为超类的继承连线。泛化关系用一个三角形指向超类。Payment是Cash,Check和Credit的超类。 一个关联有两个尾端。每个尾端可以有一个角色名role name来说明关联的作用。比如