所以我决定使用工厂设计模式和依赖注入。
class ClassA
{
Object *a, *b, *c;
public:
ClassA(Object *a, Object *b, Object *c) :
a(a), b(b), c(c) {}
};
class ClassB : public ClassA
{
Object *d, *e, *f;
public:
ClassB(Object *a, Object *b, Object *c, Object *d, Object *e, Object *f) :
ClassA(a, b, c), d(d), e(e), f(f) {}
};
现在,问题是 classB 的构造函数参数太多。这是一个单继承层的例子,但是当继承层开始变深时,当每个层类需要构造更多的对象时,顶层的构造函数最终需要太多的参数才能生成!
我知道我可以使用 setter 而不是构造函数,但是还有其他方法吗?