我猜问题的标题总结了它。有没有什么时候 ABC 拥有数据成员会被认为是好的设计?我一直在想有没有这样的情况是可以的。我唯一能想出的都是静态的,即使这样也有点牵强。
最佳答案
我不明白为什么 ABC 不能正确地拥有每个实例(又名非静态)数据成员,因为需要支持它提供给子类的方法。以存在 ABC 来提供模板方法 DP(钩子(Hook)方法是抽象的)的常见情况为例——如果组织方法的部分功能是更新一些实例变量(例如,计算方法被调用),那么显然这些变量也应该由 ABC 提供。你能更好地解释为什么你认为这是糟糕的设计吗?!
关于language-agnostic - 抽象基类何时可以拥有(非静态)数据成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903054/