You wish to treat a text file as a database.
class that returns objects of the correct
On the JabaDot web site (see Section 18.13) there is a
list of users. Each user has a login name, full name, password, email
address, privilege level, and so forth, and is represented by a
User object. These are stored in the
There are several versions of this database, so I have an abstract
class to represent all the user data accessors, called
. One of its main functions is to
read the database; this can be done in the constructor or in the
getUsers( ) method.
Of course, for efficiency, we want to do this reading only once, even
though we may have many users visiting the site. So the design
pattern (see the Introduction to Chapter 8) known
(ensure one single
instance exists) is used; anybody wanting a
object does not construct one (the constructor is private), but must
getInstance( ). Unsurprisingly,
getInstance( ) returns the same value to anyone
who calls it. The only implication of this is that some of the
methods must be
(see Chapter 24) to
prevent complications when more than one user accesses the (single)
UserDB object concurrently.
Example 20-1. UserDB.java
package jabadot; ...