私のアプリケーションでは、さまざまな種類のオブジェクトをインスタンス化する必要があります。各タイプにはいくつかのフィールドが含まれており、含まれているタイプに追加する必要があります。どうすればエレガントな方法でこれを行うことができますか?
現在の初期化手順は次のようになります。
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()
and thensetHotelOnly(hotelOnly)
と thenを呼び出す必要があるadd(offer)
)。
私が持っているものの代わりに、どのエレガントな方法を使用できますか? 使える「Factories
」はありますか?このようなコードを書くことを避けるための参照/例はありますか?
きれいなコードを実装することに本当に興味があります。
環境:
RestClient
投稿リクエストをWebサービスに送信するためのアプリケーションを開発しています。
API はxsd schema
ファイルとして表され、すべてのオブジェクトをJAXB
リクエストを送信する前に、相互に依存関係があるため、多くのオブジェクトをインスタンス化する必要があります。 (オファーにはホテルがあり、ホテルには部屋があり、部屋には人がいます...そして、これらのクラスは生成されたものです)
ご協力いただきありがとうございます。