参考:我所理解的OOP——UML六种关系 1.继承关系(extends) 表示方法:子类指向 父类,使用空心三角型箭头的实线; 图形表示为: 2.实现关系(implements) 表示方法:实现类指向接口,空心三角形箭头的虚线 图形...
1.继承关系(extends)
表示方法:子类指向 父类,使用空心三角型箭头的实线;
图形表示为:
2.实现关系(implements)
表示方法:实现类指向接口,空心三角形箭头的虚线
图形表示为:
3.依赖关系(使用、引用)
出现场景:类A中的方法需要类B的实例作为其参数或者变量
表示方法:引用者类指向被引用者,虚线的箭头
图形表示为:
4.关联关系
出现场景:类A中的有类B类型的成员变量
表示方法:引用者类指向被引用者,实线的箭头
图形表示为:
5.聚合(has-a)
概念:是一种强的关联关系。聚合是整体和个体之间的关系,即has-a的关系。整体与个体可以具有各自的生命周期,部分可以属于多个整体对象,也可以为多个整体对象共享。(画外音:目前还没理解其与关联的区别)
表示方法:引用者类指向被引用者,尾部为空心菱形的实线箭头(也可以没箭头)
图形表示为:
6.组合(contains-a)
概念:也是关联关系的一种特例。组合是一种整体与部分的关系,即contains-a的关系,比聚合更强。部分与整体的生命周期一致,整体的生命周期结束也就意味着部分的生命周期结束,组合关系不能共享。
表示方法:引用者类指向被引用者,尾部为实心菱形的实线箭头(也可以没箭头)
图形表示为:
菱形-线-小箭头,开始端的菱形区分: 实心菱形-组合:菱形方拥有实线方的对象成员,这个成员单独存在没有意义,需要负责这个对象的生命期。 空心菱形-聚合:菱形方拥有实线方的对象成员,这个成员单独存在也是有...
线-小箭头,中间的线区分:
->关联 :类中使用了对方的指针,或者引用
--->依赖 :函数参数中使用了对方,指针方式或者引用方式,可以相互依赖。
菱形-线-小箭头,开始端的菱形区分:
实心菱形-组合:菱形方拥有实线方的对象成员,这个成员单独存在没有意义,需要负责这个对象的生命期。
空心菱形-聚合: 菱形方拥有实线方的对象成员,这个成员单独存在也是有意义的,或者是个单例,不负责对象的生命期。
线-大箭头,通过实线虚线区分:
-实心箭头 继承泛化:虚函数的设计才是经典,重用也是重要功能。
--->实心箭头 实现Iml:虚函数的设计才是经典,重用也是重要功能。
泛化: 表示一个更泛化的元素和一个更具体的元素的关系 表现方式主要是继承 ...