There are five principles that you should conform.
1:Single responsibility principle.
各司其职,一个对象不要封装的太复杂,设计的时候要考虑好哪些功能属于这个对象,不要将一个对象弄得太复杂,当你意识到一个对象承担了太多责任的时候,尝试分开它,减小耦合度,以便维护。
2:Open-Closed principle
开闭原则,一个对象应该易于拓展,而难以修改。
3:Liskov Substitution principle.
一个对象必须能够完全替代他的父类。
4:Interface segregate principle
子类不应该强制实现它不应该具备的能力。
5:Dependency inversion principle
代码应该具备抽象性,细节依赖抽象,而非抽象依赖细节。