Что делает метод build () с Response в JAX-RS? - PullRequest
0 голосов
/ 27 сентября 2018

Я нашел такой код:

response = Response.status(Status.OK).entity(object.toString()).build();

Может кто-нибудь объяснить, что именно entity(...).build() будет делать с ответом?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Response не может быть создан напрямую.Он использует шаблон проектирования Builder , который является одним из 23 известных шаблонов проектирования GoF , которые описывают, как решать повторяющиеся проблемы проектирования в объектно-ориентированном программном обеспечении..

Шаблон проектирования Builder нацелен на решение таких проблем, как:

  • Как класс (один и тот же процесс построения) может создавать различные представления сложного объекта?
  • Как можно упростить класс, который включает создание сложного объекта?

Вместо создания экземпляров объектов непосредственно с new, создание объекта делегировано строителю , что позволяет контролировать этапы процесса строительства.


Просмотрите сводку конструктора Response в документации класса.Вы найдете один protected конструктор , который не может быть вызван непосредственно из вашего кода.

Вместо этого вы должны использовать один из Response статические методы для получения ResponseBuilder экземпляра и последующего получения Response от этого.

ResponseBuilderпозволяет вам контролировать, как создается Response, определяя код состояния, сущность, заголовки ответа, куки и т. д. Как только вы закончите, вы вызываете build() ион вернет экземпляр Response.

Давайте посмотрим на каждый шаг:

Response.status(Status.OK)         // Create a new ResponseBuilder with the supplied status
        .entity(object.toString()) // Set the response entity in the builder
        .build();                  // Create a Response instance from the ResponseBuilder

Другим известным примером использования шаблона проектирования Builder является класс StringBuilder.

0 голосов
/ 27 сентября 2018

public static Response.ResponseBuilder status(int status) метод возвращает ResponseBuilder .С помощью этого компоновщика вы можете предоставить атрибуты Response, а затем вызвать метод build для создания объекта Response.Вы можете прочитать больше о шаблоне построения в книге Effective Java 3rd Edition Item 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...