问题 Builder模式的真实示例


我想看看Builder模式如何在现实世界的应用程序/ API中使用。我发现的例子都是比萨饼,蛋糕,汽车等等(加上GoF书中的解析器示例)。

你能否告诉我这个模式在实际应用程序/ API中的一些用法,最好是来自C ++,.NET或PHP的世界(因为那些是我熟悉的语言)。

谢谢。


3453
2018-03-06 14:26


起源

相关问题: stackoverflow.com/questions/328496/... - Yanick Rochon


答案:


更新:我最近遇到了一个更好的例子(imo)。查看Quartz调度程序包中的JobBuilder和TriggerBuilder实现: http://quartz-scheduler.org/api/2.1.5/

此外,当我有时间,只是为了娱乐/练习,我尝试在java中编写所有GoF模式的示例。就在最近,我使用Builder模式可以轻松生成不同类型的Sitemaps(google站点地图vs,html站点地图等)。代码在java中,但您可能会有用: https://github.com/dparoulek/java-koans/tree/master/src/main/java/com/upgradingdave/koans/builder

好问题,我也有兴趣看到更现代的例子。


9
2018-03-06 15:11



这实际上是非常好的例子,谢谢。 - Matěj Zábský
@Dave Paroulek - 检查一下 岗位 并解释为什么它不好。分享我今天学到的东西 - Builder模式的不变性方面! - Narita


使用生成器模式 javax.json.Json 和 javax.json.JsonBuilder 构建Json对象时的类。

很好的解释是 http://www.programcreek.com/java-api-examples/index.php?api=javax.json.JsonObjectBuilder 并查看它 官方文件

JsonObjectBuilder b = Json.createObjectBuilder().
            add( "report", Json.createObjectBuilder().
                 add( "reportId", reportId ).
                 add( "title", title ).
                 add( "subtitle", subTitle == null ? "" : subTitle ).
                 add( "created", created.toString() ).
                 add( "description", description == null ? "" : description ).
                 add( "data", report )
            );
return b.build();

3
2018-03-02 16:47