Как элегантно инициализировать классы с большим количеством полей?
В моем приложении я должен создать множество различных типов объектов. Каждый тип содержит несколько полей и должен быть добавлен к содержащему типу. Как я могу сделать это элегантным способом?
Мой текущий шаг инициализации выглядит примерно так:
public void testRequest() {
//All these below used classes are generated classes from xsd schema file.
CheckRequest checkRequest = new CheckRequest();
Offers offers = new Offers();
Offer offer = new Offer();
HotelOnly hotelOnly = new HotelOnly();
Hotel hotel = new Hotel();
Hotels hotels = new Hotels();
Touroperator touroperator = new Touroperator();
Provider provider = new Provider();
Rooms rooms = new Rooms();
Room room = new Room();
PersonAssignments personAssignments = new PersonAssignments();
PersonAssignment personAssignment = new PersonAssignment();
Persons persons = new Persons();
Person person = new Person();
Amounts amounts = new Amounts();
offers.getOffer().add(offer);
offer.setHotelOnly(hotelOnly);
room.setRoomCode("roomcode");
rooms.getRoom().add(room);
hotels.getHotel().add(hotel);
hotel.setRooms(rooms);
hotelOnly.setHotels(hotels);
checkRequest.setOffers(offers);
// ...and so on and so on
}
Я действительно хочу избежать написания кода, подобного этому, потому что немного беспорядочно создавать экземпляры каждого объекта отдельно, а затем инициализировать каждое поле в нескольких строках кода (например, вызыватьnew Offer()
а потомsetHotelOnly(hotelOnly)
а потомadd(offer)
).
Какие элегантные методы я могу использовать вместо того, что у меня есть? Есть ли "Factories
"что можно использовать? У вас есть ссылки / примеры, чтобы избежать написания такого кода?
Я действительно заинтересован в реализации чистого кода.
Контекст:
Я разрабатываюRestClient
Приложение для отправки почтовых запросов на веб-сервис.
API представлен в видеxsd schema
файл, и я создал все объекты сJAXB
Перед отправкой запроса мне нужно создать множество объектов, потому что они имеют зависимости друг от друга.(В предложении есть отели, в отеле есть номера, в номере есть люди ... И эти классы являются сгенерированными)
Спасибо за вашу помощь.