各位大拿们。 问题如标题
我看了一些书,可是书上说的不清楚,老师讲的我也听不太明白(用法语讲)。 所以恳请各位神仙高人大牛们,帮我讲解一下。
我可以理解为,include就像是依赖, extension就像是中断么?
------解决方案--------------------------------------------------------
委托扩展的两种方式:
包含关系:使用包含(include)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用,做基用例的时候,必然会做它所包含的事件。
扩展关系:将基用例中一段相对独立并且可选的动作,用扩展(Extension)用例加以封装,再让它从基用例中声明的扩展点(Extension Point)上进行扩展,从而使基用例行为更简练和目标更集中,做基事件之后,我可能做扩展事件,也可能不做。
泛化扩展:
子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。
共性:都是从现有的用例中抽取出公共的那部分信息,作为一个单独的用例,然后通后过不同的方法来重用这个公共的用例,以减少模型维护的工作量
------解决方案--------------------------------------------------------
从一个方面举个例子:
有这些用例:管理用户、添加用户、删除用户、修改用户、查询用户。
管理用户 include 添加用户
管理用户 include 删除用户
管理用户 include 修改用户
管理用户 extension 查询用户
添加用户、删除用户、修改用户 是 管理用户 所 包含的功能,也只会属于 管理用户。
查询用户 不只是 管理用户 会使用,系统中其他地方也会使用,所以只是作为 管理用户 的扩展。
------解决方案--------------------------------------------------------
2楼讲得明白,学习了
------解决方案--------------------------------------------------------
extension:分离出不同的行为,意味着有新的场景
include:包含相同的行为,是共性的抽象
------解决方案--------------------------------------------------------
扩展关系有一个前提的条件。假设有一个主事件存在,当主事件执行执行的时候,如果出发了某个条件。那么就执行一个新的事件。
好比是一个主用例是主场景,当触发某个特定条件的时候就执行一个特殊的扩展场景。