Object-Oriented Design & Patterns

Cay S. Horstmann

Chapter 3

The Object-Oriented Design Process

Chapter Topics

A Motivating Example:   The Day Class

The Importance of Encapsulation

Accessors and Mutators

Don't Supply a Mutator for every Accessor

Sharing Mutable References

.

Final Instance Fields

Separating Accessors and Mutators

Side Effects

Law of Demeter

Quality of Class Interface

Cohesion

Completeness

Convenience

Clarity

Consistency

Programming by Contract

Preconditions

Circular Array Implementation

Inefficient Shifting of Elements

.

A Circular Array

.

Wrapping around the End

.

Preconditions

Assertions

Exceptions in the Contract

Postconditions

Class Invariants

Unit Testing

JUnit

.

JUnit