According to
The Rolodex was invented by Arnold Neustadter in 1958...."
Why is a Rolodex interesting?
A Rolodex makes for a great example of a physical device that can be implemented as software. When one looks at it closely one can easily identify object-oriented principles.
- Abstraction - a person is a contact.
- Association (or composition or aggregation) - a person works for an organization, a person has given names and so on.
- Polymorphism - a contact's string representation will look different depending on whether the contact is a person or an organization.
What goes into a Rolodex?
A Rolodex stores contact information. A contact can have a couple of telephone numbers, email addresses and addresses. A contact may be a person or an organization. A person has given names, a family name, a gender and a birth date. An organization has a name. A person may be associated with an organization. An organization may have many employees.
What can one do with a Rolodex?
You can add, remove, find and edit contacts. You can also add, remove, edit and find telephone numbers, email addresses and addresses for contacts. You my want to update a person or an organization's information from time to time.
Why did I describe the Rolodex?
Because I want to show how to implement a software solution that can take the place of a Rolodex. Over the next couple of weeks I want to show how you will go about implementing the Rolodex mainly using Java technology. I will cover the following topics:
- Rolodex's interfaces.
- Persisting Rolodex entities in an XML file using JSE technologies.
- Persisting Rolodex entities in a relational database via JPA using JSE technologies.
- Accessing Rolodex functionality as JEE components.
- Exposing the Rolodex as a Web Service.
- Exposing the Rolodex via JSF.
- Exposing the Rolodex via SEAM and,
- using .NET and web services technologies to expose the Rolodex as a .NET client.