【发布时间】:2023-05-07 13:11:02
【问题描述】:
我有点困惑为什么奇怪重复模板模式 (CRTP) 设计模式有这么多“仇恨”,例如我正在阅读“游戏编程宝石 3”,其中有一个名为 autoLists 的设计.这使用 CRTP 创建每种类型对象的数组。
我的问题:
为什么这是一件坏事?专门针对 AutoLists 的想法,但一般来说,关于 CRTP 的答案就足够了。
我的目的是在实体组件系统中使用它,以便我可以轻松地分离每种类型的组件。
【问题讨论】:
-
没有设计模式不好。 CRTP 有很多用途。然而,它有很大的被滥用的可能性——在使用它之前请确保你正确使用它!
-
我的意图是在实体-组件系统中使用它,以便我可以轻松地分离每种类型的组件。这个好用吗?
-
这里是对 AutoList 设计模式的描述:blog.balfes.net/2006/03/28/autolist-design-pattern
-
我也将 CRTP 用于我的实体组件系统,如果没有它,我认为创建相同的系统会变得更加复杂。