•Remember CS163? Keep
the philosophy of separating the class creator, from the client programmer
(the class user).
•The client should
never know the internal data structures of how operations
perform
•Write your classes so
that they are useable by others but still work well within the
application’s domain
•Make classes as atomic as possible
•Give each class a single clear purpose
•If your classes grow too complicated, break
them into simpler ones
•Avoid complicated switch statements – use
polymorphism
•Avoid a large number
of operations that cover many different types of operations –
consider using several classes