В моем приложении мне нужно создать много разных типов объектов. Каждый тип содержит некоторые поля и должен быть добавлен к содержащему типу. Как я могу сделать это элегантным способом?
Мой текущий шаг инициализации выглядит примерно так:
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
"? Есть ли у вас какие-либо ссылки/примеры, чтобы избежать написания такого кода?
Мне действительно интересно реализовать чистый код.
Context:
Я разрабатываю приложение RestClient
для отправки почтовых запросов в Webservice.
API представлен как файл xsd schema
, и я создал все объекты с JAXB
Перед отправкой запроса мне нужно создать экземпляр многих объектов, потому что они имеют зависимости друг с другом. (В отеле есть отели, в отеле есть номера, в номере есть люди... И эти классы являются сгенерированными)
Спасибо за вашу помощь.