在我的应用程序中,我需要实例化许多不同类型的对象。每种类型都包含一些字段,并且需要添加到一个包含类型中。有什么优雅的方法可以做到这一点?
我的当前初始化步骤看起来像这样:
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)
)。
有哪些优雅的方法可以代替我现在的写法?是否有可以使用的“工厂
”?您是否有任何参考资料/示例避免编写此类代码?
我非常想实现干净的代码。
上下文:
我正在开发一个RestClient
应用程序,用于向Webservice发送post请求。
API表示为xsd模式
文件,并使用JAXB
创建了所有对象。
在发送请求之前,我必须实例化许多对象,因为它们彼此之间存在依赖关系。 (一个Offer有Hotels,一个Hotel有Rooms,一个Room有Persons...而这些类是生成的)
谢谢您的帮助。
我希望以更优雅的方式替代目前的方法。是否有可用的“工厂”,或者有没有其他示例能够避免编写类似的代码?在这个RestClient
应用程序中,我需要实例化很多对象,并且它们之间存在依赖关系(例如,Offer包含Hotels,Hotel包含Rooms,Room包含Persons等)。我想实现更清晰的代码。
null
,还是所有对象中都有实际内容?如果你无论如何都这样做,难道不能默认初始化所有字段(private FieldType field = new FieldType()
)吗?这将导致整个层次结构只有一个new
。 - zapl