i am doing the partII now, and some assumption regarding segment and flight here:
i think the segment is equal to a leg of a flight, that is mean a take off and landing of a flight.from the segment sight,sure one segment to one flight is correct.so the cardinal between segment and flight is one-one.but from the flight sight, one flight maybe includes several segments.such as a flight named FBN01 stopping in a lay-over city but flight number is the same, not need to change to another airplane. which sight should taken i think from the segment sight is better because the prepare itinerary and price itinerary are both based on segments.in my design, i design an <Itinerary> class including a list of segment(with attributes like price and flight).
another asumption still confusing me is the return-trip attribute. should i put it in the itinerary or the segment? i think it would be more better put in the segment. so an itinerary should include a list of outward segment and a list of return segment. if so, to define a <OutwardSegment> clz and a <ReturnSegment> clz which both inherit from the father <Segment> clz.