gpt4 book ai didi

design-patterns - 对象在单击时行为不同的设计模式,具体取决于全局状态

转载 作者:行者123 更新时间:2023-12-01 05:45:21 25 4
gpt4 key购买 nike

关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。












想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。

4年前关闭。




Improve this question




我在这个问题上使用 Unity3D,但这是一个通用的软件工程问题。

Unity3D 中的实体(交互对象)是用组件或行为构建的。通过将行为放在一起,您可以定义对象的确切行为。

我正在考虑如何让不同的对象在单击时基于全局状态做出不同的 react 。例如,我有一个工具,目标只影响场景中的圆圈;如果我选择那个工具,然后单击一个对象,如果它是一个圆形,我会将它更改为一个正方形。如果它不是一个圆圈,我会忽略它。

使用基于组件的实体设计,我会定义一个名为 IsCircle 的行为,当它被点击时,我会检查它是否会发生什么。但是,它访问整个应用程序的全局状态的最佳方式是什么?假设我希望避免任何切换,if-else 并希望解决方案解耦

(问题是 OnMouseDown() 事件处理程序不传入任何参数)。

如果答案牢记我使用的环境强制执行复合模式,我将不胜感激。

最佳答案

我不确定您是否可以使用此解决方案,但请查看我用于根据对象的状态更改对象行为的状态设计模式,因此在您的示例中,您必须将状态移动到您的对象。您还可以考虑访问者设计模式,也许还有某种多方法。

关于design-patterns - 对象在单击时行为不同的设计模式,具体取决于全局状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2698089/

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