EA&UML日拱一卒 用例扩展关系
用例扩展关系
下面是ULM2.5.1中对用例扩展关系的解释。
扩展是从扩展用例到被扩展用例的关系,它指定扩展用例中定义的行为如何以及何时可以插入到被扩展用例。扩展发生在被扩展用例中定义的一个或多个特定扩展点。当有一些额外的行为应该被添加(可能有条件地)到一个或多个用例定义的行为时,应该使用扩展。
被扩展用例的定义独立于扩展用例,其含义也独立于扩展用例。另一方面,扩展用例通常本身通常不必具有完整的含义。相反,扩展用例定义了一组模块化的行为增量,这些增量可以在特定条件下增强被扩展用例的执行。
注意:同一个扩展用例可以扩展多个用例。此外,扩展用例本身可能被扩展。
扩展和包含
在实际的设计中经常会将用例的扩展和包含关系弄混。解决这个问题最关键的就是【额外】两个字,如果设计者认为该行为是必须的,就是包含;如果是【额外】的,就是扩展关系。
扩展实例
前面到文章说明了取款和转账的用例分析,除了共同的处理之外,还分别包含了执行转账动作和执行取款动作两个用例。也有一些客户,可能希望在执行正常的转账或取款动作的同时,将执行过的动作记入动作日志中。这个日志记录动作就可以看作是实际业务之外,即【额外】的行为。
注:这里的【看作】很重要,体现的设计者对建模对建模对象的看法。
以下是取款用例分析中使用用例扩展关系的例子:
图中黄色的是扩展用例,绿色的是被扩展用例。
同样的扩展用例也可以用于扩展转账用例的行为:
作者著作介绍
《实战Python设计模式》是作者去年3月份出版的技术书籍,该书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。
对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。
觉得本文有帮助?请分享给更多人。
关注微信公众号【面向对象思考】轻松学习每一天!
面向对象开发,面向对象思考!