我目前正在学习构建器模式。所有的教程,一切都很棒,但是当涉及到使用真实数据(不是在SetFoo(),SetBar()(在构建器中)中的硬编码字符串时,我意识到我需要传递给构建器控制器内部(MVC)。然后我的控制器碰巧是导演吧?
我的构造函数方法现在已经消失,因为数据已由构建器的setter设置。
示例:
fooBuilder.setBar("real data from db");
fooBuilder.setFoo("more real data from the database");
是否违反了构建器模式的原则?
答案 0 :(得分:0)
我认为控制器将数据传递给构建器是可以的。
但是你仍然可以保留构造函数方法。使用Builder模式不需要删除构造函数。其实质是Builder类知道如何创建和构建零件。
我建议将set方法重命名为build:BuildBar,BuildFoo。