What is a good class design in Java?

The public interface of a class should contain only operations defined on the class. Classes should be the least dependent as possible. A class hierarchy in the inheritance should be drawn based upon their natural relationship and never imposed. The topmost class should be an abstract class or an interface.

Read more