DDD领域驱动笔记

前端之家收集整理的这篇文章主要介绍了DDD领域驱动笔记前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1.依赖(Dependency):虚线箭头表示

依赖关系也是类与类之间的联结
依赖总是单向的。(#add 注意,要避免双向依赖。一般来说,不应该存在双向依赖。)
依赖关系在 Java 或 C++ 语言中体现为局部变量、方法的参数或者对静态方法调用
特点:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某个方法体内)才有关系

2.关联(Association):实线箭头表示

关联关系是类与类之间的联结,它使一个类知道另一个类的属性方法
关联可以是双向的,也可以是单向的(#add还有自身关联)。
(双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。)
在 Java 或 c++ 中,关联关系是通过使用成员变量来实现的。
特征:表示类与类或类与接口之间的依赖关系,表现为“拥有关系”;具体到代码可以用实例变量来表示。

3.聚合(Aggregation):带空心菱形头表示

聚合关系是关联关系的一种,是强的关联关系。
聚合是整体和部分之间的关系,例如汽车由引擎、轮胎以及其它零件组成。
聚合关系也是通过成员变量来实现的。但是,关联关系所涉及的两个类处在同一个层次上,而聚合关系中,两个类处于不同的层次上,一个代表整体,一个代表部分。
关联与聚合仅仅从 Java 或 C++ 语法上是无法分辨的,必须考察所涉及的类之间的逻辑关系。
特征:属于是关联的特殊情况,体现部分-整体关系,是一种弱拥有关系;整体和部分可以有不一样的生命周期;是一种弱关联.

4.合成(Composition):带实心菱形头的实线表示

合成关系是关联关系的一种,是比聚合关系还要强的关系。
它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
特征:属于是关联的特殊情况,也体现了体现部分-整体关系,是一种强“拥有关系”;整体与部分有相同的生命周期,是一种强关联;

5.泛化(Generalization):带空心箭头的实线线表示

泛化表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。
泛化关系表示类与类之间的继承关系,接口与接口之间的继承关系。

6.实现(Realization):空心箭头和虚线表示

实现关系指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

猜你在找的设计模式相关文章