2014-11-05 3 views
0

Допустим, у меня есть пользователь класса с несколькими свойствами. Я создаю приложение на основе REST, поэтому на моей домашней странице, когда я запрашиваю «данные пользователя», мне нужно только несколько свойств от моего Пользователя и отдых от других классов. Как написать класс для объекта, который я бы вернул для «деталей пользователя»?Expose только часть моего класса

Мой текущий проект извлекает необходимые свойства из класса для создания JSON. Надеюсь, есть лучший способ справиться с этим.

Я использую Play Framework 2.0 с Java

+1

Какой язык программирования/рамки вы используете? – mkubacki

ответ

0

Если вы не хотите подвергать весь бизнес-класса User, я построить второй класс, DTO. Этот класс предоставляет только нужные данные, которые должны быть переданы REST API.

User user = new User("admin"); 
// Set other properties 
UserDetailsDTO userDetailsDTO = new UserDetails(user); //<- Transfer userDetailsDTO 

Или если «информация о пользователях» имеет важное значение для вашего приложения, возможно, вам следует рассмотреть, чтобы создать класс UserDetails и использовать его внутри класса User композиция.

public class User { 
    Long id; 
    String name; 
    String address; 
    UserDetails userDetails; // Composition <- Tranfer userDetails 
} 

Примечание: пример, когда дон в Java

+0

Обратите внимание, что объект, который я хочу вернуть, может также содержать свойства других классов. например. Смесь свойств классов пользователей и курсов – AbrahamDaniel

+0

Затем я буду использовать fisrt aproach, конкретный класс с необходимыми данными, которые будут переданы API – Ezequiel

0

Похоже, вам нужен Фасад: http://en.wikipedia.org/wiki/Facade_pattern. Это простой шаблон, который помогает вам выставлять методы/свойства из нескольких классов. Вы можете хранить ссылки на объекты в вашем классе Facade и выставлять только те вещи, которые вам нужны.

0

Существует возможность создания объекта View Model, обеспечивающего надлежащую абстракцию информации, необходимой для этого JSON. Подробнее об этом здесь: http://en.wikipedia.org/wiki/Model_View_ViewModel

Но это обычно используется в случаях, когда вид непосредственно используется в представлениях приложения. Поэтому тщательный анализ необходим в случае использования, упомянутом выше, поскольку уже создан JSON, создание этого слоя View Model действительно оправдано.

Смежные вопросы