类图

关于UML中类图关系的总结

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-10 23:07:45
关于UML中类图关系的总结 UML中的类图是一大难点,很多人对其中的六种关系的使用都分不清,看了网上的一些资料,感觉实用性都不是很大(我想我们在正常画图的时候应该遇不到鸭子和嘴这种情况),因此,笔者总结了一套自己的类图关系说明,希望可以跟大家分享一下,如果有说的不对的地方,请大家多多包涵。 基本概念 类图当中有六种关系,分别是依赖,关联,泛化,实现,聚合,组合。其中泛化和实现都非常好理解。泛化就是两个类之间有继承的情况,继承就是接口与实现之间的关系。这两种关系都非常好理解。接下来我们主要说说另外四种关系。 依赖 首先说依赖,它是这六种关系中依赖度最小的关系,我认为这种关系就是类与参数之间的关系,比如说我在第一个类中定义了一个int a的参数,而在第二个类中有一个函数save(a),也就是说第一个类的变量变成了第二个类的参数,同样的还有返回值之间的关系建立也是属于这种关系的,我认为这种关系就是所谓的依赖关系。 也就是说,依赖关系就是不需要创建对象,直接可以使用的关系。 关联 首先要说明一下,组合和聚合都属于关联,换句话说关联包括三种类型,一般关联,聚合,组合。其关联度的强弱为:组合>聚合>一般关联。 我认为关联与依赖的区别就是:关联的话就是说在一个类中定义了另一个类的对象,而依赖不定义对象的。 组合 首先从我认为最好理解的组合开始说起吧。我认为组合必须包含两个条件。1

UML类图简单介绍

ε祈祈猫儿з 提交于 2019-12-10 18:51:58
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 先上一张图: 概述 类图(Class Diagram)是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。 类图组成 类图(Class Diagram)是一个分为三个部分的矩形:上面的部分显示类的名称,居中显示, 类名是斜体 表示的是 抽象类 ;中间部分显示类的特性(字段和属性);下面的部分显示类的操作(方法或行为)。 注意前面特性和操作部分的符号含义: + 表示属性或方法是公用的(public) - 表示属性或方法是私有的(private) # 表示属性或方法是保护的(protected) 接口 接口(Interface)与类图基本一致,主要区别在于接口顶端有 <<interface>> 表示。 类图中关系图示说明 注:下面的是以上面的图为例说明。 继承(Generalization)/泛化(Generalization) :空心三角形+实线 实线从子类指向父类,空心三角形与父类连接。(动物和鸟的继承关系) 实现(Realization) :空心三角形+虚线 虚线从实现类指向接口,空心三角形与接口连接,在类图中就是接口和实现的关系。(实现大雁飞翔的接口) 依赖(Dependency) :虚线箭头

6大设计原则之单一职责原则

六月ゝ 毕业季﹏ 提交于 2019-12-10 07:21:30
基本概念 单一职责原则的英文名称是Single Responsibility Principle,简称是SRP。 There should never be more than one reason for a class to change. 实例说明 简单栗子感受一哈 看如下类图 分析一下这个类图哈,UserInfo实现IUserInfo接口,IUserInfo接口下有一系列方法,不过认真看一下这些方法,结合让你直接定义一个UserInfo类,很容易会发现username、password、userID会被我们作为类的属性,其他的会被作为类的行为。这样设计接口就不满足原则了。 可拆分为以下类图 分析一哈这个类图,仅将原来的一个接口泛化,即IUserInfo接口继承了两个接口,…………这些仅起到说明的作用,其他和上述类图类似,不详细说明了。 在看以下这个类图,多了一个依赖关系,这种设计就符合单一职责原则 以上我们把一个接口拆分成两个接口的动作,就是依赖了单一职责原则,那什么是单一 职责原则呢?单一职责原则的定义是: 应该有且仅有一个原因引起类的变更。 复杂栗子感受一哈 分析一下这个类图哈,定义了一个电话的接口,有打电话、通话、挂断这三个方法,正常我们开发可能就写成这样子了,但是我阅读的这书中,却提出了这里面包含了协议管理和处理数据两个职责,分别对应打电话、挂断电话和通话,细想一下

UML类图关系图解

我们两清 提交于 2019-12-09 07:40:30
UML类图关系图解 https://www.cnblogs.com/TvvT-kevin/p/9357339.html 一、类结构 在类的UML图中,使用长方形描述一个类的主要构成,长方形垂直地分为三层,以此放置类的名称、属性和方法。 其中, 一般类的类名用正常字体粗体表示,如上图;抽象类名用斜体字粗体,如 User ;接口则需在上方加上 <<interface >> 。 属性和方法都需要标注可见性符号, + 代表 public , # 代表 protected , - 代表 private 。 另外,还可以用冒号 : 表明属性的类型和方法的返回类型,如 +$name :string 、 +getName(): string 。当然,类型说明并非必须。 二、类关系 类与类之间的关系主要有六种:继承、实现、组合、聚合、关联和依赖,这六种关系的箭头表示如下 1.关联关系(Association) 关联关系:属于结构关系,对象与对象之间的关系 1.1单向关联 1 class Man 2 { 3 public Car car; 4 } 5 class Car 6 { 7 8 } 1.2双向关联 class Studen { public Grade grade; } class Grade { public Student student; } 1.3自关联 1 class ClassA

UML类图符号理论

£可爱£侵袭症+ 提交于 2019-12-07 13:51:16
0. 前言 相信大家在学习UML类图的时候,最大的困难可能来自两个方面: 类图中各种关系的区别; 多种关系的符号记忆容易混淆; 本着"Do one thing and do it well."的原则,本文不介绍UML类图中各种关系的区别。而重在介绍UML类图的符号理论,以及利用该理论帮助大家更好的记忆。 1. 准备 在开始阅读本文之前,你需要了解的知识有: UML类图的概念; UML类图有几种关系; 各种关系的强弱; 2. UML类图符号理论基础 UML类图主要有以下几种关系: 泛化 Generalization 实现 Realization 组合 Composition 聚合 Aggregation 关联 Association 依赖 Dependency 以上这六种关系的强弱是: 泛化 > 实现 > 组合 > 聚合 > 关联 > 依赖 这六种关系,每一种都对应着一个符号。加起来就有六种符号,要想在较短的时间内记住这六种符号而且不产生混淆是一件不太容易的事情。那么该如何更有效的来记忆这些符号? 接下来我们将首先认识一下关于符号的基础知识。 2.1 类图符号基础知识 首先我们从整体上来认识一下表达类图关系的符号,类图关系的符号由三部分组成:箭头、线条和箭尾。 箭头形状有两种,分别为箭头和三角箭头。 线条形状有两种,分别为实线和虚线。 箭尾形状有三种,分别为点、空心菱形和实心菱形。

UML系列图--用例图

落爺英雄遲暮 提交于 2019-12-06 22:53:12
UML-Unified Model Language 统一建模语言 ,又称标准建模语言。是用来对 软件 密集系统进行可视化 建模 的一种语言。 在UML系统开发中有三个主要的模型:   功能模型: 从用户的角度展示系统的功能,包括用例图。   对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括 类图 、对象图、包图。   动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。 UML的重要内容可以由以下五种类图定义 用例图 :从用户角度描述系统功能,并指各功能的操作者。 静态图 :包括类图,包图,对象图。 类图:描述系统中类的静态结构 包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构 对象图:是类图的实例 行为图 :描述系统动态模型和对象组成的交换关系。包括状态图和活动图 活动图:描述了业务实现用例的工作流程 状态图:是描述状态到状态控制流,常用于动态特性建模 交互图: 描述对象之间的交互关系 顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互 合作图:描述对象之间的协助关系 实现图: 配置图:定义系统中软硬件的物理体系结构 UML包括用例图、类图、构件图、部署图、顺序图、协作图、状态图、活动图 各个图简介: 用例图从外部用户的角度捕获系统的行为。他将系统功能划分为对活动者具有意义的事务。 类图描述类、接口

Java设计模式:23种设计模式全面解析(超级详细)

孤人 提交于 2019-12-06 14:19:28
设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 1995 年, GoF (Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称「GoF设计模式」。 这 23 种设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,以及类的关联关系和组合关系的充分理解。 当然,软件设计模式只是一个引导,在实际的软件开发中,必须根据具体的需求来选择: 对于简单的程序,可能写一个简单的算法要比引入某种设计模式更加容易; 但是对于大型项目开发或者框架设计,用设计模式来组织代码显然更好。 关于本教程 本教程虽然命名为“Java设计模式”,但是设计模式并不是 Java 的专利,它同样适用于 C++、C#、JavaScript 等其它面向对象的编程语言。 Java 是典型的面向对象的编程语言,所以本教程以 Java 为基础来讲解这 23 种设计模式,如果你不了解 Java,请猛击《 Java教程 》学习。 教程目录:1. 软件设计模式概述 2. GoF 的 23 种设计模式的分类和功能 3. UML中的类图及类图之间的关系 4. 开闭原则

阶段性总结(从软件工程到分层架构)

怎甘沉沦 提交于 2019-12-06 13:16:15
阶段性总结(从软件工程到分层架构) 阶段性总结(从软件工程到分层架构) 写在前面 软件工程 什么是软件工程 我对软件工程的理解 软件工程流程 UML 定义 为什么会出现UML UML模型 UML建模过程 UML如何描述一个系统 UML总结 设计模式 三层架构 总结 写在前面 这篇文字将会将2011年下半年的学习内容做个总结,不求细节只为从宏观上理解它们之间的联系以及学习它们的目的。 内容包括软件工程、UML、设计模式、三层架构还有两门语言,C#和VB.NET 软件工程 什么是软件工程 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。(这是维基百科的定义) 其实软件工程的目的就是以健全的工程化的原则,在给定的成本和进度前提下有可修改性、有效性、可靠性、可理解性、可维护性、可重用 软件工程性、可适应性、可移植性、可追踪性和可互操作性并且满足用户需求的软件产品。 我对软件工程的理解 软件工程是伴随着软件的整个生命周期了存在的,它科学的指导着软件的计划、需求分析、设计编码、测试、运行维护整个生命周期的每一个阶段。 软件工程的兴起源于软件危机,人们不得不思考如何保证软件的可靠性,如何保证软件的开发进度等等问题。于是软件工程出现了

UML各种图总结-精华

时光怂恿深爱的人放手 提交于 2019-12-06 11:31:38
UML各种图总结-精华 https://www.cnblogs.com/jiangds/p/6596595.html UML(Unified Modeling Language)是一种统一建模语言,为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。下面将对UML的九种图+包图的基本概念进行介绍以及各个图的使用场景。 想要知道UML更多内容的朋友,可以点击以下课程学习相关知识:    https://edu.csdn.net/course/play/24752/280547 一、基本概念     如下图所示,UML图分为用例视图、设计视图、进程视图、实现视图和拓扑视图,又可以静动分为静态视图和动态视图。静态图分为:用例图,类图,对象图,包图,构件图,部署图。动态图分为:状态图,活动图,协作图,序列图。    1、用例图(UseCase Diagrams):   用例图主要回答了两个问题:1、是谁用软件。2、软件的功能。从用户的角度描述了系统的功能,并指出各个功能的执行者,强调用户的使用者,系统为执行者完成哪些功能。    2、类图(Class Diagrams):      用户根据用例图抽象成类,描述类的内部结构和类与类之间的关系,是一种静态结构图。 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization)

[转帖]UML类图新手入门级介绍

巧了我就是萌 提交于 2019-12-06 11:31:16
UML类图新手入门级介绍 2010-11-12 19:45:00 monkey_d_meng 阅读数 27230 收藏 文章标签: uml interface class 编程 扩展 更多 分类专栏: 软件工程 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/MONKEY_D_MENG/article/details/6005764 UML类图新手入门级介绍 举一个简单的例子,来看这样一副图,其中就包括了UML类图中的基本图示法。 首先,看动物矩形框,它代表一个类(Class)。类图分三层,第一层显示类的名称,如果是抽象类,则就用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。前面的符号,+ 表示public,- 表示private,# 表示protected。 右下角的飞翔,它表示一个接口图,与类图的区别主要是顶端的<<interface>>显示。第一行是接口名称,第二行是接口方法。接口还有另一种表示方法,俗称棒棒糖表示法。唐老鸭是能讲人话的鸭子,实现了讲人话的接口。 接下来的是类与类,类与接口之间的关系了。首先注意动物、鸟、鸭、唐老鸭之间的关系符号。它们都是继承的关系,继承关系用空心三角形 + 实线来表示的。 上述所列举的几种鸟中