This book will mean different things to readers of different backgrounds. Those
already familiar with OOD will find things to think about, possibly encounter some
new points of view, and probably disagree with a few of the suggestions. Because
there is no final authority on OOD, challenges to the principles (and to this author)
will improve the understanding of all. In the end, you must be the arbiter of your own
designs; it is up to you to question, to experiment, and to choose.
While this book should be of interest to many levels of reader, it is written with
the particular goal of being accessible to novices. If you are one of those novices, this
part of the introduction is especially for you. Know this: Object-oriented design is not
black magic. It is simply things you don’t yet know. The fact that you’ve read this far
indicates you care about design; this desire to learn is the only prerequisite for benefit-
ing from this book.
Chapters 2 through 9 explain OOD principles and provide very explicit program-
ming rules; these rules will mean different things to novices than they mean to experts.
If you are a novice, start out by following these rules in blind faith if necessary. This
early obedience will stave off disaster until you can gain enough experience to make