博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[UML]UML系列——类图class的依赖关系
阅读量:6379 次
发布时间:2019-06-23

本文共 1812 字,大约阅读时间需要 6 分钟。

相关文章   

     

     

     

     

依赖关系的概念与符号

       依赖表示一个类以某种形式依赖于其他类。当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类。

       符号:

 

依赖关系在代码中的表现

      在程序代码中,依赖关系意味着一个类的对象出现在另一个类的操作中。常见的有两种情况:一个类将另一个类的对象作为自己某个操作的参数(形参),或者是操作的局部变量。

      程序演示:code/train

1  class train 2     { 3         public string number; 4  5         public train(string num) 6         { 7             number = num; 8         } 9 10         public void run()11         {12             Console.WriteLine("列车启动……列车到站");13         }14     }
train
1  class person 2     { 3         public string name; 4         public person(string name) 5         { 6             this.name=name; 7         } 8         public void GoToBeijing(train mytrain)  //从河南到北京 9         {10             Console.Write(name+"去北京乘坐{0}列车:",mytrain.number);11             mytrain.run();12         }13         public void GoToHenan()   //从北京到河南14         {15             train mytrain = new train("1488"); 16             Console.Write(name + “去河南乘坐{
0}列车:", mytrain.number);17 mytrain.run();18 }19 }
Person
1  class Program 2     { 3         static void Main(string[] args) 4         { 5             person person1 = new person("张三"); 6             person person2 = new person("李四"); 7  8             train train1 = new train("1487次"); //河南到北京 9         train train2 = new train(“1488次”); //河南到北京10         person1.GoToBeijing(train1);11             person2.GoToBeijing(train2);12             person1.GoToHenan();13             person2.GoToHenan();14         }15     }
Program

      对应的类图:

 

依赖关系与关联关系的区别

       1、符号和在代码中的区别

 

      2、语义上的区别

      当一个类的实例与另一个类的一些特定实例存在固定的对应关系时,这两个类之间为关联关系。

      只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是用到了那个类),就可以把这种关系看成是依赖,依赖也可以说是一种偶然的关系。

      比如上面的人和火车的关系:在某个方法中偶然用到了它,但在现实中我和它并没多大关系。

总结

      依赖关系还是比较好理解的,注意和关联关系的区别及符号的表示方式不同,一个用虚箭头,一个用实箭头。

      今天就比较累,就写到这里吧.......后面将介绍泛化关系,及泛化关系的应用——多态

 

 

转载于:https://www.cnblogs.com/wolf-sun/p/3422097.html

你可能感兴趣的文章
【POJ 1062】昂贵的聘礼(最短路)
查看>>
vim:去掉响铃
查看>>
Spring 小示例
查看>>
MySql清空表的方法介绍 : truncate table 表名
查看>>
codeforces水题100道 第四题 Codeforces Round #105 (Div. 2) A. Insomnia cure (math)
查看>>
Zabbix-3.0.3结合Grafana-3.1.0给你想要的绘图
查看>>
利用 SPL 快速实现 Observer 设计模式: SplSubject 、SplObserver与SplObjectStorage【转】
查看>>
C\C++ 1A2B小游戏源码
查看>>
【SDK fix】iOS 8下将UIButton放置于tabbar位置无法响应event
查看>>
Android项目实战(三十八):2017最新 将AndroidLibrary提交到JCenter仓库(图文教程)...
查看>>
地平线“小目标”:2025年,三千万汽车搭载地平线自动驾驶BPU
查看>>
“2016大数据技术与应用人才培养研讨会” 在泸州成功召开
查看>>
大数据和数字化转型
查看>>
如何知道自己的CPU支持SLAT
查看>>
客户端在使用citrix应用如何开启本地输入法
查看>>
C# 一个字符串是否在另外一个字符串数组里 Array.Exists 的用法 Array.IndexOf 用法...
查看>>
delphi实现计算器
查看>>
CentOS7 网卡命名
查看>>
如何在Hudson上集成sonar来实现代码质量控制
查看>>
Django进阶之缓存和信号
查看>>