0
|
CodeSmile Paul Beusterien · 技术社区 · 12 年前 |
![]() |
1
3
我也研究过如何有效地生成抽象类的问题,但我不太喜欢这个解决方案。在我看来,这会让你的子类代码看起来很奇怪,让普通的观察者更难阅读。
如果您需要子类在中进行特定的初始化
|
![]() |
2
2
这表明您的体系结构存在严重缺陷。指定初始化器链的全部意义在于,它可以以可预测的顺序执行,而不会发生变化。向的子类添加合同义务 不 遵循正常的链条会增加脆弱性和不必要的复杂性。 缺陷的关键在于,你有一个抽象类,看起来并不是真正的抽象;它可以有具体的实例,这需要具体的初始化。 首先,为什么不能将类分解为一个真正抽象的类和一个具体的类? 如果你不能(或者不想——当然,更多的类本身就有成本),那么一个解决方案是将常用的初始化操作分解成一个单独的方法:
这不算什么
然后,让您的子类通过标准指定的初始化器进行调用
它与您提出的类似,但以更紧密地遵循现有模式的方式呈现界面。 |
![]() |
MWRazer · 在类-C上具有作为属性的函数++ 2 年前 |
![]() |
Vopel · 添加隐藏的属性,除非该属性具有值 2 年前 |
![]() |
Shane Amare · 构造函数和对象构造之间的区别是什么? 2 年前 |