gpt4 book ai didi

oop - OO 设计 - 对象向间接持有它的类提出问题

转载 作者:行者123 更新时间:2023-12-04 20:58:26 25 4
gpt4 key购买 nike

我想知道一个对象向另一个间接持有它的对象提问是否是“糟糕”的设计。例如...

要求:
角色(一个对象)在网格上移动。当它试图移动到另一个位置时,它需要知道该位置是否已经被阻挡它的东西占据,或者网格的那部分是否完全无法访问。 (注意字符本身需要知道)。

在应用程序中,一个状态拥有一个 tilemanager 和一个角色管理器。 tilemanager 知道哪些图块可以访问,哪些不能访问。角色管理器知道角色的图块位置。

角色从状态调用函数是否合理,比如 AuthorizeMovement ,它通过其 TileManager 和 CharacterManager 确定是否可以移动,如果是,则返回 true,否则返回 false?

这是否违反了任何重要原则,导致 future 出现问题?

显然,这是概括并简化为理解问题所必需的。

最佳答案

我建议这可能是一个糟糕的设计,是的。可以这么说,“红旗”就是循环引用。你说:

... an object asking a question to another object that indirectly holds it



因此,“持有”对象具有对“持有”对象的引用,并且为了“提出问题”,“持有”对象将需要对“持有”对象的引用。

这构成了一个循环对象依赖图,并且通常是代码异味。

似乎其他一些类应该有责任了解角色和 TileManager 和/或 CharacterManager。

关于oop - OO 设计 - 对象向间接持有它的类提出问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com