![]() |
1
7
这是一个通用的 factory example 实施:
这并不意味着在每种情况下都是最好的,但它的目的是作为一种近似值和一种比手动实现上述函数类型更有用的默认值。每个层次结构应该如何注册自己并不是由工厂强制的,但是您可能喜欢 method gf提到了(它简单、清晰、非常有用,是的,在这种情况下,它克服了宏的固有问题)。 这是一个 simple example 工厂的:
|
![]() |
2
3
在许多领域中,最快也是最有用的方法是
|
![]() |
3
2
你也可以看一下Boost课程 factory 实施。
下面是一个使用BoostFactory方法和类注册的简单示例:
|
![]() |
4
1
首先,是的,这正是工厂模式的目的。
如果你打算为一个大项目做这件事(如果不是的话,只要去 stijns answer ,您可能需要考虑在某个地方使用关联容器,而不是显式分支,甚至可以移动 登记责任 到班级里去
为了在课堂上实现方便的注册,你可以使用
this suggestion
并添加一个函数指针或
functor
指向实例化派生类并返回指向基的指针的项。
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |