转自:http://mybluesky99.iteye.com/blog/384197
类:
矩形框代表一个类(如图-1),类图分为三层,第一层为类的名称,如果是抽象类类名用斜体字表示,如图中动物类所示。第二层是类的特性(通常就是类的字段和属性)。第三层为类的操作(通常就是方法或行为)。注意前面的符号,“+”表示public,“-”表示private,“#”表示protected.
![](http://images.cnblogs.com/cnblogs_com/peida/1.JPG)
(图-1)
动物类是一抽象类,它是不能被实例化的,而猪类可以被实例化。
接口:
接口有两种表示方法:矩形表示法(如图-2中的飞翔的接口)和棒棒糖表示法(如图-2中唐老鸭类中实现讲人话的接口)。矩形表示法,顶端有<<接口>>或者<<interface>>,第一行:接口名称,第二行:接口方法。棒棒糖表示法,圆圈旁为接口名称,接口方法在实现类中出现,如唐老鸭类中的讲话。
![](http://images.cnblogs.com/cnblogs_com/peida/2.JPG)
(图-2)
泛化(Generalization)
表示类与类之间的继承关系,接口与接口之间的继承关系,或类对接口的实现关系。一般化的关系是从子类指向父类的,与继承或实现的方法相反。具体表现:父类父类实例=new 子类();
(图-3)
![](http://images.cnblogs.com/cnblogs_com/peida/4.JPG)
(图-4)
用空心三角形+实线来表示继承(如图-3)。在静态结构图中,在父类和子类间拖放归纳连接,箭头指向父类,另一段指向子类。关联关系是使用实例变量来实现 。
用空心三角形+虚线来表示实现接口(如图-4)。在静态结构图中,右击任意类形状(“类”、“参数化的类”、“实用程序”或“元类”),单击“形状显示选项”,然后在“常规选项”下选择“实现链接”。将类形状上的实现链接的控制手柄(黄色小菱形)粘附到接口、类或其他元素的连接点上。
关联(Association)
对于两个相对独立的对象,当一个对象的实例与另一个对象的一些特定实例存在固定的对应关系时,这两个对象之间为关联关系。关联又分为双向关联、单向关联、自身关联。
双向关联:双向关联是两个类之间的联接。关联总是被假定是双向的;这意味着,两个类彼此知道它们间的联系,除非你限定一些其它类型的关联。如(图-5)Flight 的例子, 显示了在Flight类和Plane类之间的一个标准类型的关联。
(图-5)
一个双向关联用两个类间的实线表示。在线的任一端,你放置一个角色名和多重值。图-5显示Flight与一个特定的Plane相关联,而且Flight类知道这个关联。因为角色名以Plane类表示,所以Plane承担关联中的“assignedPlane”角色。紧接于Plane类后面的多重值描述0...1表示,当一个Flight实体存在时,可以有一个或没有Plane与之关联(也就是,Plane可能还没有被分配)。图-5 也显示Plane知道它与Flight类的关联。在这个关联中,Flight承担“assignedFlights”角色;图-5 的图告诉我们,Plane实体可以不与flight关联(例如,它是一架全新的飞机)或与没有上限的flight(例如,一架已经服役5年的飞机)关联。
由于对那些在关联尾部可能出现的多重值描述感到疑惑,下面列出了一些多重值及它们含义的例子(0..1:0个或1个;1:只能1个;0..*:0个或多个;*:0个或多个;1..*:一个或多个;等等。)
单项关联:在一个单向关联中,两个类是相关的,但是只有一个类知道这种联系的存在。(图-6)显示单向关联的透支财务报告的一个实例。
![](http://images.cnblogs.com/cnblogs_com/peida/6.JPG)
(图-6)
一个单向的关联,表示为一条带有指向已知类的开放箭头(不关闭的箭头或三角形,用于标志继承)的实线。如同标准关联,单向关联包括一个角色名和一个多重值描述,但是与标准的双向关联不同的时,单向关联只包含已知类的角色名和多重值描述。在(图-6)中的例子中,OverdrawnAccountsReport 知道 BankAccount 类,而且知道 BankAccount 类扮演“overdrawnAccounts”的角色。然而,和标准关联不同,BankAccount 类并不知道它与 OverdrawnAccountsReport 相关联。
依赖(Dependency)
对于两个相对独立的对象,当一个对象负责构造另一个对象的实例,或者依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。依赖关系具体表现在局部变量,方法的参数,以及对静态方法的调用。比如说动物有几大特征,如新陈代谢,繁殖,有生命。而动物要有生命力,就需要氧气、水及食物,也就是说动物依赖于氧气和水。他们之间是依赖关系,用虚箭头表示。如(图-7)所示。
![](http://images.cnblogs.com/cnblogs_com/peida/7.JPG)
(图-7)
类图代码:
abstract class Animal
{
public string Metabolism(Oxygen oxygen,Water water)
{
}
}
聚合关系(Aggregation)
聚合关系表示一种弱的拥有关系,即A对象可以拥有B对象,但B对象不是A对象的一部分。聚合关系用空心的菱形加实线箭头来表示。如下图(图-8)所示:
![](http://images.cnblogs.com/cnblogs_com/peida/8.JPG)
(图-8)
在逻辑上来说,停车场中有汽车,但汽车并不是停车场的一部分。汽车和停车场之间没有部分和整体之间的关系。
组合(合成)关系(Composition)
组合也成为复合和合成关系,是一种强的“拥有”关系,体现了严格的部分与整体的关系,部分和整体的生命周期一样。如下图(图-9)所示,鸟和鸟的翅膀就是组合(合成)关系,他们是部分和整体的关系,并且翅膀和鸟的生命周期相同。合成关系用实心的菱形加实线箭头来表示。合成关系的连线两端还有一个数字,如图(图-9)的数字‘1’和‘2’,这被成为基数。表明这一端的类可以有几个实例,很显然一只鸟只有两个翅膀。如果一个类可以有无数个实例,则就用‘n’表示。关联关系和聚合关系也可以用基数的。
![](http://images.cnblogs.com/cnblogs_com/peida/9.JPG)
(图-9)
在严格的组合(合成)关系中,类之间有强依赖关系,在很多情况下,代表整体的对象需要负责保持部分对象的存活。
![](http://images.cnblogs.com/cnblogs_com/peida/3.JPG)
分享到:
相关推荐
"基于PID搜索优化算法的FMD分解优化研究与应用","基于PSA与PID搜索优化算法的FMD分解创新方法:一种2023年SCI顶刊实践的智能优化技术",【优化fmd分解】PSA–fmd分解,PID搜索优化算法(PID-based search algorithm, PSA,2023年12月发表在SCI人工智能一区顶刊《Expert Systems With Applications》,利用该算法优化fmd分解,做为一种创新点使用。 具体如下图 ,优化fmd分解; PSAfmd分解; PID搜索优化算法; 创新点,基于PSA算法的FMD分解优化研究
内容概要:本文档详细介绍了DBC文件的格式及其组成部分,用于描述CAN通讯网络。主要内容涵盖版本和新规范符号、位定时、节点、数值表、报文和信号的定义、环境变量、注释以及用户属性等方面。通过对各部分的解析,可以帮助开发者更好地理解和配置CAN网络的通讯参数。文档还包括具体的实例,帮助理解实际应用场景。 适合人群:主要适用于从事汽车电子控制系统开发的技术人员,尤其是负责车载网络通信的设计和实施的工程师。 使用场景及目标:帮助工程师解析和创建CAN网络的DBC文件,确保正确配置和优化CAN总线通信,提高系统的可靠性和效率。通过DBC文件进行网络节点定义、信号传输设置等任务,有助于加速产品的开发周期并减少错误配置的风险。 其他说明:虽然DBC文件主要用于描述CAN通讯,但它不能直接定义环境变量或进行系统仿真。此外,某些部分(如过滤器和支持旧标准的部分)已废弃但仍需保留在文件中以维持兼容性。
"2024视酷酷信IM即时通讯源码:全4端互通,安全稳定,支持二次开发及多端部署","2024视酷酷信IM即时通讯源码:全4端互通,安全可靠,可二次开发,适用于技术达人的专业级即时通讯系统",2024亲测可用视酷酷信即时通讯,IM即时通讯源码 全4端互通通讯带教程源码 完整版,可以搭建成功 1.适合有技术能力的 2.源码支持二次开发和修改,可以二开加商城等 3.源码没有任何后门,安全部署到自己的服务器上,无需担心数据丢失,隐私有保障 4.4端互通,使用国产最新tio通信技术,tigase都是老版的 软件部署环境: 1.客户端:安卓,苹果,pc端、web端 2.开发语言: Java、 OC、 C#、vue 3.运行软件:idea Java xcode android studio、Visual Studio 4.数据库:mongodb (可大量存储数据) 5.环境:linux系统centos7.6 6.系统优势:单台服务器可承载万人并发同时在线;需求大的话可做集群,性能非常强大 ,2024年; 视酷酷信即时通讯; IM源码; 全4端互通通讯; 源码二开; 安全部署; TIO通信技
雨天前车窗雨滴等障碍物图像分割系统:新手课程精选
"Aspen Plus模拟下的生物质化学链工艺:氢气与氨气的绿色生产模型","Aspen Plus模拟:生物质化学链工艺生产氢气和氨气的清洁化过程",Aspen Plus化工过程模拟化学链工艺从生物质中生产氢气和氨气 本模型复现了Journal of Cleaner Production中一篇文章的模型。 在本模型中,首先将生物质通过化学链工艺转化为氢气,之后使用哈伯法将氢气转化为氨气。 ,Aspen Plus; 化工过程模拟; 化学链工艺; 生物质; 氢气生产; 氨气生产; Journal of Cleaner Production; 哈伯法。,"Aspen Plus模拟化学链工艺产氢氨从生物质出发"
"光伏混合储能系统中的VSG技术:实现光储一次调频、功率平抑及直流母线电压控制的高效策略",光伏混合储能VSG系统:实现光储一次调频、功率平抑及直流母线电压控制的多功能应用,光伏混合储能VSG一一光储一次调频、功率平抑、 直流母线电压控制。 ,核心关键词:光伏混合储能; VSG; 光储一次调频; 功率平抑; 直流母线电压控制;,"光伏混合储能系统中的VSG技术与调频、功率平抑及电压控制"
chat-api.yaml.bak
前端分析-2023071100789
新建 Microsoft Excel 工作表.xlsx
c 使用 C#,开发一个气溶胶光学厚度反演算法的窗体应用程序 使用 C#,开发一个气溶胶光学厚度反演算法的窗体应用程序
本文全面介绍了Go语言的学习资源,包括官方文档、在线教程、书籍推荐、开源项目、工具框架、社区论坛、实战项目、进阶资源以及视频教程和博客文章等多个方面。通过官方文档、Go Tour、书籍如《The Go Programming Language》等优质资料可以帮助读者系统地学习Go语言。开源项目如Docker、Kubernetes展示了Go语言的实际应用;Go Modules等工具提供了便捷的支持;而实战项目能提高动手能力。博客文章则分享了前沿技术见解,视频教程适合视听学习者。
"基于StarCCM+的储能液冷系统热管理仿真教学视频:带热失控仿真计算,三个模型文件实战练习","基于StarCCM+的储能液冷系统热管理仿真教学视频:带热失控仿真计算与三个模型文件供练习的实践指南",储能热管理 基于starccm+ 储能液冷系统热管理仿真 带热失控仿真计算…… 教学视屏,三个模型文件供练习。 储能热管理 ,核心关键词:储能热管理;starccm+仿真;液冷系统热管理;热失控仿真计算;教学视屏;模型文件练习。,《基于Starccm+的储能液冷系统与热失控仿真教学视频》
【毕业设计】IoT安全漏洞检测平台(中国民航大学本科毕业设计)
显示湿度 51单片机代码 大学生嵌入式
【毕业设计】校园二手商品交易平台,ssm框架+layui_pgj
c 一个基于C#的STK二次开发 一个基于C#的STK二次开发
2024免费毕业设计成品,包括源码+数据库+往届论文资料,附带启动教程和安装包。 启动教程:https://www.bilibili.com/video/BV1jKDjYrEz1 技术栈:Vue.js+SpringBoot+MySQL。 开发工具:Idea+VSCode。
"基于随机森林算法的RF多变量时间序列预测外部工具箱:Matlab代码与Windows 64位系统兼容版",基于随机森林算法的RF多变量时间序列预测工具箱:Matlab代码与外部工具集成解决方案,基于随机森林(RF)算法的多变量时间序列预测 外部工具箱 RF多变量时间序列 matlab代码 注:暂无Matlab版本要求 -- 推荐 2018B 版本及以上 注:采用 RF 工具箱(无需安装,可直接运行),仅支持 Windows 64位系统 ,基于随机森林(RF)算法; 多变量时间序列预测; 外部工具箱; RF多变量时间序列预测的Matlab代码; Windows 64位系统。,"基于随机森林算法的Windows多变量时间序列预测外部工具箱"