【发布时间】:2020-09-08 12:13:16
【问题描述】:
这是我面临的问题的一般设计问题。
我正在实现用户可以一次选择多个项目的 UI 项目列表。但是,某些选项在某种意义上进行了分组,即由于业务逻辑,一次只能选择其中一项。例如。如果列表包含项目 A、B、C,则需要一种方法来指定可以同时选择 A、B 或 C 的逻辑。
我考虑在类设计中实现一个变量,其中包含已分组的其他项目的列表,因此如果该列表中的任何项目已被选择,则无法选择。但是,这似乎是一件难以维护的事情,因为如果一个组中有 3 个项目,那么如果向该组中添加了一个额外的项目,则必须更新所有 3 个项目。
对于这个问题有什么更好的设计解决方案?
【问题讨论】:
-
为什么不直接设置一个变量来保存枚举类型,例如
int selected = A/B/C/Unchecked?然后每个元素都会在更新前检查它。根据我的 UI 编程经验,最好在“更新”回调中挂钩所有组件,而不是在框架中通知其他组件,例如 Android 上的“onDraw”或 Unity 中的“更新”。
标签: c++ oop design-patterns