Oop 消除Builder中内置类中方法的重新实现,同时保留嵌套调用

Oop 消除Builder中内置类中方法的重新实现,同时保留嵌套调用,oop,design-patterns,builder,Oop,Design Patterns,Builder,我有一个类,必须检查是否为所有变量设置了该类,同时可以添加更多必须设置的变量: class A{ setVar1(); setVar2(); setVar3(); } 在建造它之前,我必须检查这三套设备是否都被调用过。 我如何创建一个生成器:a.不必再次调用上述方法(比如在生成器内部实现另一个setVar1()setVar2(),它将从a调用这些方法-这对我来说是一个地狱,将来维护时要实现这些设置器两次)。对我来说,这里的坏例子是: class ABuilder{ bu

我有一个类,必须检查是否为所有变量设置了该类,同时可以添加更多必须设置的变量:

class A{
   setVar1();
   setVar2();
   setVar3();
}
在建造它之前,我必须检查这三套设备是否都被调用过。 我如何创建一个生成器:a.不必再次调用上述方法(比如在生成器内部实现另一个setVar1()setVar2(),它将从a调用这些方法-这对我来说是一个地狱,将来维护时要实现这些设置器两次)。对我来说,这里的坏例子是:

class ABuilder{
   build(){...}
   builderSetVar1(){...} //HELL NO!
   builderSetVar2(){...} //NO NO NO!!!
   ...
}
B.在构建之前将检查是否已设置所有必须具有的成员(包的用户将无法拥有不完整的A)C.将允许嵌套一行构建A(Builder…SetVar1(…)…SetVar2(…).build())

甚至有可能实现这三个目标吗?我尝试了太多的可能性,在每一个解决方案 都是面向对象的。

在脱机状态下找到了答案: 我必须在构建器中执行setter,并在每次生成对象的构造函数时简单地展开。最后,我将能够进行构建并检查构建时的所有设置。
我认为这是我真正理解的第一个设计模式。

构建器模式的全部要点是在构建器中设置变体,让build()方法检查所有必需的内容是否都已设置,最后构建一个不可变的对象,因此没有设置器。