SE450: Encapsulation: Provider/Consumer [15/47] |
OO Design is about defining good abstractions (boundaries).
Abstractions distribute responsibilities.
Code provider versus client programmer -- there is always contract between the two.
Where are the contracts in Java?
Java Equality as example of informal contract: java.lang.Object#equals(java.lang.Object)