Each thing is, as it were, in a space of possible states of affair. This space I can imagine as empty, but I cannot imagine the thing without the space.
In isolation, your Java objects have no meaning, i.e., they do nothing. Java objects represent things outside the application: a customer, a savings account, and so on. Before getting into the details of individual objects, you truly need to understand the space in which you expect them to operate. Architecture is the space in which software objects operate.
In this chapter, I will lay the foundations for database development in the object-oriented world of Java by examining the architecture of an application you will be building over the rest of this book. You may find that these foundations span a broad spectrum of issues. I will not touch JDBC, EJB, or any of the other details required for the creation of individual objects. Instead, my goal is to help you cut down on the work you will need do over and over again each time you build a database application and to maximize the relevance of what you build to future needs. Many of the classes I show you in this chapter are common and generic, perhaps something that you could use to create a standard package for use in all kinds of applications.
One thing you may have noticed about Java or similar object-oriented languages such as Smalltalk or Python is that there are so many classes. ...