在UML关系中,有两个我很难区别的概念-包含和扩展。在介绍之前我还是先说说我最初的想法。
1.《Extend》
起初我是将if判断代入《extend》中,扩展就是是需要判断传递的参数值,即如果传递的参数突破了原定的标准量那么它与所引起的用例之间的关系就称为《extend》。如下图:
当购买的金额超过一定数量那么就引发了打折的事件。这其中需要一个数值的判断,所以我就简单地把它归结为能引发IF判断的两个事例之间即为《extend》关系。但这是不准确的,后来又查了下才了解。
Extend:一个用例描述了一项功能,而另一个用例则描述了这个功能的一个特殊情况。如图:
查找数目用例完善补充了借书用例。看到这里时才察觉到,用IF是不准确的,特殊情况或完善才更为精确。扩展用例是为了更好的说明描述前一个用例的所有状态。
2.《include》
至于《include》关系则是一个用例使用了另一个用例的功能或行为。在用例图中是<include>,在类图和包图中是《dependency》。
Dependency定义是X,Y两个类或包中的元素,改变其中一个会影响到另一个。用两个图就可以简单的区别开来。
看完俩图后对它们的区分更清楚了些。我觉得回归课本很重要,一些刚开始很不理解的语句,在自己琢磨之后再看下课本,才能更真切的感受到它的美。