Реальные примеры паттерна Builder - PullRequest
12 голосов
/ 06 марта 2011

Я хотел бы посмотреть, как шаблон Builder используется в реальных приложениях / API.Все примеры, которые я нашел, - это пицца, пирожные, автомобили и так далее (плюс пример парсера из книги GoF).

Не могли бы вы рассказать мне об использовании этого патента в реальных приложениях / API, предпочтительноиз мира C ++, .NET или PHP (так как это языки, с которыми я знаком).

Спасибо.

Ответы [ 2 ]

9 голосов
/ 06 марта 2011

Обновление: я недавно натолкнулся на еще лучший пример (IMO).Ознакомьтесь с реализациями JobBuilder и TriggerBuilder в пакете планировщика Quartz: http://quartz -scheduler.org / api / 2.1.5 /

Также, когда у меня есть время, просто для развлечения / практикиЯ пытаюсь написать примеры всех шаблонов GoF в Java.Совсем недавно я использовал шаблон Builder, чтобы упростить создание различных типов файлов Sitemap (карта сайта Google vs, карта сайта html и т. Д.).Код написан на Java, но вам может пригодиться: https://github.com/dparoulek/java-koans/tree/master/src/main/java/com/upgradingdave/koans/builder

Хороший вопрос, мне было бы интересно посмотреть и более современные примеры.

5 голосов
/ 02 марта 2017

Шаблон Builder используется в классах 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();
...