This is a full Address Book Application.

You can run it with the following View options:
    - A command line user interface   (option: 0)
    - 3 different Swing UI interfaces (option: 1, 2, 3 or 4)

The source (Model) of the address book data can come from:
    - A file           [zAddrbook.txt]             (option: file)
    - A database table [DB:app12c, TABLE:addrbook] (option: db)
    - An XML file      [zAddrBook.xml]             (option: xml)
    
The application uses an MVC pattern (using controller-view-model flow)

There is a single controller class:
    - AddrBookControl
To enable polymorphism, I created an interface for all Views, and an interface for all Models:
    - AddrBookView  
    - AddrBookModel
I implemented from the interfaces all the subclasses:
    - AddrBookView0, AddrBookView1, AddrBookView2, AddrBookView3   
    - AddrBookFile, AddrBookDB, AddrBookXML   

The MVC object responsibilities are as follows:
    - The App starts the Controller
    - The Controller starts the requested View and the requested Model
    - The Controller calls the View getUserInput() method
    - The View calls  the Controller search() method - and passes it the name to search for
    - The Controller calls the Model search() method - which returns all the found entries
    - The Controller calls the View display() method    

To run, use the run (or run.bat) script.  The script adds the database driver to the CLASSPATH.
Example:
         run 0 file
         run 2 db