使用真实数据(不是某些硬编码数据)的生成器模式



我目前正在学习构建器模式。所有的教程,一切都很棒,但是当涉及到处理真实数据(不是 SetFoo((、SetBar(((在构建器中(中的硬编码字符串(时,我意识到我需要从控制器内部传递给构建器(MVC(。然后我的控制器恰好是导演吧?

我的构造函数方法现在消失了,因为数据已经由构建器的 setter 设置。

例:

fooBuilder.setBar("real data from db");
fooBuilder.setFoo("more real data from the database");

它是否违反了构建器模式的原则?

我认为控制器将数据传递给构建器是可以的。

但是您仍然可以保留构造函数方法。使用生成器模式不需要删除构造函数。本质是 Builder 类知道如何创建和构建零件。

我建议重命名 set 方法以构建:BuildBar、BuildFoo。

最新更新