面向对象关系
2020-04-24 09:08:05 22 举报
面向对象关系
作者其他创作
大纲/内容
依赖关系(Dependency)
1
Computer
+CPU cpu;+Keyboard keyboard;
线条语义
Product
关联
关联体现的是两个类之间语义级别的一种强依赖关系,是一种对象之间的引用关系,比如商品类和订单类。这种关系比依赖关系要密切很多,不偶然,也不临时。一般地,程序实现中,类A中的某个属性的类型是类B,我们称类A和类B的关系是关联关系,其中类A称为关联类,类B称为被关联类。
继承关系(Generalization)
Family
+List<Child> childrens;
聚合
组合关系亦是一种特殊的关联关系,和上面的聚合关系一样,也表示一种整体和部分的关系。不同于聚合组合关系中的部分,离开整体没有意义,只能依附于整体存在。比如,汽车和汽车的引擎,引擎是汽车的一部分,离开汽车,引擎在当前的建模语境中没有意义。可以看出,组合是比聚合更强的关联关系。程序实现中,组合关系和一般的关联关系也没有区别,只能从语义层面区分。
Food
0..n
Bird
+ eat():void
Child
Person
+ eat(Food food):void+ read(Book book):void
Dog
聚合关系是关联关系的一种特例,聚合关系表示的是一种整体和部分的关系,has-a。比如,家庭(Family)和孩子(Child),孩子是家庭的一部分,再比如公司(Company)和雇员(Staff)。聚合关系在程序中的体现和上面的关联关系是一样的,只能在语义层面进行区分。可以看出,聚合时一种比一般关联关系更强的关系,需要有整体和部分的联系。
组合
CPU
依赖
0
Book
Order
+List<Product> proList;
Animal
聚合关系(Aggregation)
依赖就是类A当中使用了类B。有些英文的材料中将这种关系表述为引用(using)。这种关系具有偶然性、临时性,也非常弱,但是,类B的变化会影响到类A。代码中,一般表现为,类A中的某个成员函数用到了某个类B类型的参数,或者类A中的某个成员函数,用到了类B类型的某个临时变量,等等。比如在实际生活中我们做一件事情都需要借助其他物体的帮助,换句话说,我们依赖于其他的物体生活。比如:人要吃饭和阅读。依赖也是最普遍和常见的关系。
组合关系(composition)
继承
实现
关联关系(Association)
Keyboard
0 条评论
下一页