UML即Unified Modeling Language,中文译为统一建模语言或标准建模语言,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
本文将针对类图给出笔者的学习记录。
类图显示了模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。
接下来将针对类与类之间的关系展开介绍。
- 泛化关系
通俗的说即继承关系,但是此继承过程的父类为普通类,与之产生对比的即实现关系,实现关系中的继承父类为抽象类或者接口。泛化关系使用空心实线三角箭头表示。
泛化关系在代码中最终会体现为继承非抽象类。
- 实现关系
也是继承的一种关系,但是要求父类必须是抽象类,此处和上文提到的泛化关系形成对比。实现关系使用空心虚线三角箭头表示
实现关系在代码中最终会体现为继承(实现)抽象类。
- 聚合关系
聚合关系表示前者聚合到后者上,是一种弱依赖,如下例子中人员聚合为一个小组,但是小组解散后“人员”却仍旧有意义,此即为聚合关系。聚合关系使用空心实线菱形箭头表示。
聚合关系在代码中通常由聚合对象不固定的持有被聚合对象。
- 组合关系
组合关系与聚合关系相对应,它是一种固定持有被组合对象的关系,而且当组合解散则被组合的部分则不再有意义。组合关系使用实线实心菱形箭头表示。
组合关系在代码中通常由组合对象固定的持有被组合对象。
- 关联关系
关联关系为不同对象之间的结构关系,它是一种静态关系,通常与程序运行无关,它是一种“强关联”。关联关系可能是单向的,也可能是双向的。关联关系使用实线和小箭头来表示,如果关联关系是双向的,则可以不使用箭头。
关联关系在代码中通常以成员变量的形式表示。
- 依赖关系
依赖关系一般是动态产生的,一方对另一方产生依赖的体现,我们应该始终保证依赖关系为单向的。依赖关系使用虚线和小箭头来表示。
依赖关系在代码中一般体现为作为构造方法或静态方法的传入参数。
以上为针对6种UML类之间关系的简述。
如有不对敬请指出,感谢阅读!