Introduction –Frequent Flyer Accounts
日本語 こちらをクリック

Here we consider two designs for a phone book application. Design A implements the phone book as a "kind of" list by sub-classing a List entity. It considers the phone book a list of contacts where each contact is a pair of data (name, phone number). List is an abstract entity that is augmented to perform phone book data management. Design B utilizes composition where the phone book uses a list of contact objects.

The design requirements are:

In terms of design specifications, design quality, or evolutionary requirements:

Phone Book Designs

Design A
Design B

Sub-class of List: List class is extended to specifically manage contact data as needed. The PhoneBook is the collection of Contacts. Composition using List: PhoneBook uses a List as a collection of Contact objects. It does not extend the functionality of List.

Compare the two designs below by selecting which design is the "best" answer to the question asked.

Which design is more easily implemented?
Which design is more easily extended?
Which design is more easily maintained?
Which design is better able to handle errors, bad-inputs, unexpected events/actions, and off-nominal conditions?
Which design is easier to test and debug?
Which design has higher runtime performance or is more efficient?
Which design is more easily understood?
Which design is less complex?
Which design better addresses the problem (as understood from the description link)?
Profile Questions
Your confidence implementing software designs (as a developer)?
Your confidence with creating software designs?
How confident are your ability to evaluate the qualities of a design?
What is your email address?