首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实体之间的UML序列调用,而不需要相互了解

实体之间的UML序列调用,而不需要相互了解
EN

Stack Overflow用户
提问于 2020-12-13 02:50:40
回答 1查看 34关注 0票数 1

假设我们有一只老虎站在田野上寻找猎物。当老虎开始捕猎时,他问田野目前站在那里的是什么。在那之后,老虎开始一个接一个地吃掉它们。如果它吃了一只土狼,它就会咬它一口,然后老虎就会放了那只土狼。如果老虎一次捕猎两只以上的土狼,它就会被它们咬死。如果老虎吃了一只羚羊,它就死定了。

我创建了一个序列,但据我所知,它违反了OOP原则。我应该改变什么来实现这些原则?土狼对没有老虎的进食方式的反应如何让土狼知道这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2020-12-13 04:00:02

事实上:老虎不能让土狼咬它,也不能由土狼决定让它走。老虎甚至不应该知道土狼的内部结构(principle of the least knowledge)。

您需要将这两个类解耦。第一步是隐藏内部,将猎人和猎物抽象为更一般的生物。

下一步可能是将一个领域中涉及的生物之间交互的责任转移到一个,它将负责交流的编排,只使用老虎和土狼专门研究的生物的已知接口。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65268619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档