•Always assume that an
object has no insight into the internal structure of another
object
•Play close attention to this!
•All activities on
objects other than itself must be achieved by performing an operation, not by
direct
manipulation of the internal data
•Always ask yourself
“how can an object of this class carry out an operation on another
class’ data?
•This is a hard
question – especially since you may not be aware at the design phase of all
of the implementation details