【发布时间】:2011-02-20 07:55:55
【问题描述】:
我正在为游戏引擎 (C++) 设计 GUI(图形用户界面)系统。
想法是创建一系列 GUI 控制器,例如 Focusable、Hoverable、Dragable 等。每个 GUI 组件都可以附加多个控制器,它们会修改组件的行为。
我认为它提供了灵活的系统并防止代码重复。同一个 GUI 类的不同实例可以有不同的复杂行为(可能,甚至动态改变它),所以这种方法看起来很实用。
另一种选择是在基础 GUI 组件类中添加聚焦、悬停、拖动等标志。它看起来像开销,而不是那么灵活。
另一种解决方案是使用装饰器模式并使用 FocusDecorator、HoverDecorator 等包装对象。维护这样的系统看起来有点困难。
问题:我的解决方案有哪些缺陷?您可能在 GUI 系统中看到过更好的方法吗?实现这种灵活的复杂系统的最佳方法是什么?
【问题讨论】:
-
您给出了三个解决方案,然后询问您的解决方案中存在哪些缺陷 - 您要问的是哪一个,或者您想要一个 3x3 交易研究?
-
仔细阅读问题。我给出了我的解决方案和两个替代方案。
-
不,你给出一个“想法”、一个选择和另一个解决方案。
-
伙计,你没有通过图灵测试。 :-D
-
是什么让你放弃了现有的 gui 库,比如 crazyEd 的 gui 或 wxwindows?
标签: c++ user-interface oop architecture