Wie initialisiere ich Klassen mit vielen Feldern auf elegante Weise?

In meiner Anwendung muss ich viele verschiedene Arten von Objekten instanziieren. Jeder Typ enthält einige Felder und muss einem enthaltenden Typ hinzugefügt werden. Wie kann ich das elegant machen?

Mein aktueller Initialisierungsschritt sieht ungefähr so aus:

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
    } 

Ich möchte wirklich vermeiden, Code wie diesen zu schreiben, da es etwas chaotisch ist, jedes Objekt einzeln zu instanziieren und dann jedes Feld über mehrere Codezeilen zu initialisieren (z. B. @ aufrufen zu müssennew Offer() und dannsetHotelOnly(hotelOnly) und dannadd(offer)).

Welche eleganten Methoden kann ich anstelle dessen anwenden, was ich habe? Sind da irgendwelche "Factories "das verwendet werden kann? Haben Sie Referenzen / Beispiele, um zu vermeiden, dass Code wie dieser geschrieben wird?

Ich bin wirklich daran interessiert, sauberen Code zu implementieren.

Kontext

Ich entwickle einRestClient Anwendung zum Senden von Post-Anfragen an einen Webservice.

Die API wird als @ dargestelxsd schema Datei und ich habe alle Objekte mit @ erstelJAXB

Vor dem Senden einer Anfrage muss ich viele Objekte instanziieren, da sie Abhängigkeiten zueinander haben. (Ein Angebot hat Hotels, ein Hotel hat Zimmer, ein Zimmer hat Personen ... Und diese Klassen sind die generierten)

Danke für Ihre Hilfe

Antworten auf die Frage(12)

Ihre Antwort auf die Frage