UML在代码中的展现

依赖:一个类使用了另外一个类,这种关系是临时的、脆弱的。
如人需要过河,需要船,这时人.过河(船)  中船被当做参数传入,船的实现变化会影响过河方法。
 
 
聚合:体现是整体与部分、has-a的关系,此时整体与部分之间是可分离的,他们可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。
如公司与员工,一个员工可以脱离公司到其他公司成为员工,员工也可以单独存在,这里的依赖比较弱。
在代码中:
1
2
3
4
5
6
class Company{
     private staffArray:Staff[] = [];
     public addStaff(staff:Staff){
         this.staffArray.push(staff);
     }
}
 
 
组合:体现的是一种contains-a的关系,这种关系比聚合更强,也称为强聚合;他同样体现整体与部分间的关系,但此时整体与部分是不可分的,整体的生命周期结束也就意味着部分的生命周期结束;
如人与大脑,大雁与翅膀,大雁类在实例化之前一定要先实例化翅膀,两个类紧密耦合在一起 它们有相同的生命周期 翅膀类(Wings)不可以脱离大雁类(Goose)而独立存在 
 
在代码中:
 
1
2
3
4
5
6
class Goose{
     public wings:Wings = null;
     constructor(){
          wings = new Wings();
     }
}

  

 

关系所表现的强弱程度依次为:组合>聚合>关联>依赖;

 
posted @   樱良orz  阅读(249)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示