原文:
[UML]UML系列——类图class的依赖关系
train
Person
Program
相关文章
[UML]UML系列——用例图中的各种关系(include、extend)
[UML]UML系列——类图class的关联关系(聚合、组合)
依赖关系的概念与符号
依赖表示一个类以某种形式依赖于其他类。当两个类处于依赖关系中时,其中一个类的改变可能会影响另一个类。
符号:
依赖关系在代码中的表现
在程序代码中,依赖关系意味着一个类的对象出现在另一个类的操作中。常见的有两种情况:一个类将另一个类的对象作为自己某个操作的参数(形参),或者是操作的局部变量。
程序演示: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 }
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 }
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 }
对应的类图:
依赖关系与关联关系的区别
1、符号和在代码中的区别
2、语义上的区别
当一个类的实例与另一个类的一些特定实例存在固定的对应关系时,这两个类之间为关联关系。
只要一个类用到另一个类,但是和另一个类的关系不是太明显的时候(可以说是用到了那个类),就可以把这种关系看成是依赖,依赖也可以说是一种偶然的关系。
比如上面的人和火车的关系:在某个方法中偶然用到了它,但在现实中我和它并没多大关系。
总结
依赖关系还是比较好理解的,注意和关联关系的区别及符号的表示方式不同,一个用虚箭头,一个用实箭头。
今天就比较累,就写到这里吧.......后面将介绍泛化关系,及泛化关系的应用——多态