UML中依赖/泛化/关联/聚合/组合/实现的C#实现

本文详细介绍了UML类图中的六种基本关系:泛化、依赖、关联、聚合、合成与实现,并通过实例代码加以说明,帮助读者理解每种关系的特点及应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

在网上发现了一篇总结的很好的文章,也就算是copy过来的吧,谢谢作者!

在UML类图中,类与类之间的关系主要有以下几种:

  • 泛化(Generalization)

     所谓的泛化就是我们最常用的继承关系

image

 1:  public class Employee 
 2: { 
 3:   
 4: } 
 5:  public class SaleEmployee:Employee 
 6: { 
 7:   
 8: } 
  • 依赖(Dependency)

依赖关系是指一个类对别一个类的依赖,比如说Employee类中有一个方法叫做TakeMoney(Bank bank)这个方法,在这个方法的参数中用到了Bank这个类,那么这个时候可以说Employee类依赖了Bank这个类,如果Bank这个类发生了变化那么会对Employee这个类造成影响。

 1:  public class Employee 
 2: { 
 3:  public long TakeMoney(Bank bank) 
 4: { 
 5:  return long.MaxValue; 
 6: } 
 7: } 

Snap2

 

  • 关联(Association)

      关联关系有点边界模糊和依赖有点像,但又完全不像。关联是指一个类用到了另外的一个类,但不依赖。还是用代码来表达比较贴切

 1:  public class Shcool 
 2: { 
 3:  public Student stu; 
 4: } 
 5:  public class Student 
 6: { 
 7:   
 8: } 

Snap3

 

  • 聚合(aggregation)

        聚合是一种单向关系,聚合与关联的区别在于聚合的两个类之间的关系在概念层次上不是一个级别的,一般来说聚合中的类关系总是一个类比别一个类要高级一些,而关联基本上是平级的

 1:  public class Car 
 2: { 
 3:  public Engine engine; 
 4:  public Wheel wheel; 
 5: } 
 6:  public class Engine 
 7: { 
 8:   
 9: } 
 10:  public class Wheel 
 11: { 
 12:   
 13: } 

 

Snap4

  • 合成(Composition)

合成是一种特殊的聚合形式,它是提类与类之间的联系是非常密切的,少了那一个也不行。

Snap5

  • 实现(Realization)

简单的说就是接口

Snap6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值