The Design by Contract (DBC) theory can dramatically raise software quality and reusability levels by forcing you to think in terms of contracts. Contracts formally specify the responsibility relationship between a client (class user) and a supplier (class). Additionally, DBC clearly separates specification (what) from implementation (how). This article explains DBC's importance in object-oriented development and describes a DBCProxy framework that achieves DBC transparently in Java using dynamic proxy classes. [Article Text]