![]() |
1
6
不可撤销地将其与基类绑定:
或者将不同的关注点实际分开:
你可能已经学会了我喜欢哪一种了。与类层次结构分开定义,您可以轻松地扩展和修改,例如在两个名称下注册(使用id属性只允许一个名称):
您还可以将工厂实例“保留在”基础中,同时保持其分离:
|
![]() |
2
3
你可以用元类来完成这项工作,但我认为一个简单的解决方案就足够了:
然后定义一个子类,只需使用:
最后使用基类中的factory方法为您创建实例:
在这个解决方案中,在类定义之后,必须调用register class方法将子类注册到基类中。此外,默认
|
![]() |
Fernando Chu · 一个变量有多个可能的类?[关闭] 5 月前 |
![]() |
Amaterastis · 基类接受子类和内部子类的模板参数 6 月前 |
![]() |
Rishab Negi · 这个关键字在抽象类中是如何工作的 6 月前 |
![]() |
dEmigOd · 类层次结构中的运算符重载解析 6 月前 |
![]() |
TableTopRug · 如何从Kotlin中的密封类继承? 7 月前 |
![]() |
hasdrubal · 抽象基类函数指针python 10 月前 |
|
Josh · 通过反思访问孩子的财产 11 月前 |