Avoid Complexity
lPrefer classes to interfaces
lPrefer constructors to factory methods
lAvoid excessive abstraction
lYou usually don’t need multiple implementations
lRefactor to patterns; don’t start with them. Avoid pattern overload!