我想看看在實際應用程序/ API中如何使用Builder模式。我發現的例子都是比薩餅,蛋糕,汽車等等(加上GoF書中的解析器例子)。Builder模式的真實世界示例
您能否介紹一下這個patten在真實世界的應用程序/ API中的用法,最好來自C++,.NET或PHP世界(因爲這些是我熟悉的語言)。
謝謝。
我想看看在實際應用程序/ API中如何使用Builder模式。我發現的例子都是比薩餅,蛋糕,汽車等等(加上GoF書中的解析器例子)。Builder模式的真實世界示例
您能否介紹一下這個patten在真實世界的應用程序/ API中的用法,最好來自C++,.NET或PHP世界(因爲這些是我熟悉的語言)。
謝謝。
更新:我最近遇到了一個更好的例子(imo)。檢出JobBuilder和TriggerBuilder實現在Quartz調度包:http://quartz-scheduler.org/api/2.1.5/
此外,當我有時間,只是爲了好玩/實踐中,我試圖用Java編寫所有的GoF模式的例子。就在最近,我使用Builder模式來輕鬆生成不同類型的Sitemaps(谷歌網站地圖vs html網站地圖等)。代碼是在java中,但你可能會很有用:https://github.com/dparoulek/java-koans/tree/master/src/main/java/com/upgradingdave/koans/builder
好問題,我會有興趣看到更現代的例子。
這實際上是非常好的例子,謝謝。 – 2011-03-08 16:18:54
@Dave Paroulek - 檢查這[post](http://stackoverflow.com/questions/15461083/builder-pattern-which-variant-is-preferred)並解釋爲什麼它不好。分享我今天學到的東西 - Builder模式的不變性方面! – Narita 2015-02-04 10:15:39
在構建Json對象時,Builder模式用於javax.json.Json
和javax.json.JsonBuilder
類。
很好的解釋是在http://www.programcreek.com/java-api-examples/index.php?api=javax.json.JsonObjectBuilder,也檢查出它的official documentation。
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();
相關的問題:http://stackoverflow.com/questions/328496/when-would-you-use-the-builder-pattern – 2011-03-06 14:34:13