OO Hints to Follow!
Split up classes with too much responsibility
Sometimes a top level class ends up with far too many operations
because all commands are simply added to it
Eliminate classes with too few responsibilities
A class with no operations is not useful. What would you do with its
objects?
A class with only one or two operations may be useful, but you should
convince yourself that there is really no better way of distributing the
responsibilities
If another class can meaningfully carry out the task – move the
operations there and eliminate the class
Eliminate unused responsibilities (operations)
Reorganize unrelated responsibilities – move it to a different
class or add it to a new class