gpt4 book ai didi

language-agnostic - 适用于其他对象集合的类的设计模式?

转载 作者:行者123 更新时间:2023-12-04 08:36:56 24 4
gpt4 key购买 nike

我有一个 User 模型,可以包含 1-n 个 UserGroup 模型,每个模型都包含有关用户与特定组的关系的数据(例如,如果他们是组的管理员,当他们加入组时,等)。

我想提供一些辅助方法,例如 isGroupUser() 和 isGroupAdmin(),它们适用于存储在 User 模型中的整个 UserGroup 模型集。现在这些方法在用户模型中,但它们只是模型大小的两倍。

将在 UserGroup 模型上运行的代码放到它自己的类中是否有意义?那么 User 模型将包含此“接口(interface)”类的单个实例,该实例现在还包含要处理的 UserGroup 模型。我觉得这样可以很好地将相关代码分开,并且用户模型不会变得过于庞大。

还有,这种东西有设计模式吗?处理其他对象集合的类似乎很常见。

感谢您的见解!

最佳答案

迭代器:提供一种在不暴露其底层表示的情况下按顺序访问聚合对象元素的方法。 [GoF, p257]

访问者:表示对对象结构的元素执行的操作。 Visitor 允许您定义一个新操作,而无需更改它所操作的元素的类。 [GoF, p331]

如果您是设计模式的新手,可以在 http://www.vincehuston.org/dp/ 上快速概览。

关于language-agnostic - 适用于其他对象集合的类的设计模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1626422/

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