Express repeated functionality with
inheritance
Is the same responsibility carried out by
multiple classes?
Check whether you can
recognize this commonality by finding a common base class and
have the other classes inherit from it
Keep class responsibilities at a single
abstraction level
Every project exhibits a layering of
abstractions
The responsibilities
of a single class should stay at one abstraciton level and should not
go to a higher or lower level
Class names should be nouns
Dont use object is a class name it adds
no value
Operations should be
verbs or short sequence of words that contain a verb
There should be unique identifiers in the
first 1-2 words of a name
Keep names consistent dont mix get and
give