一、面向对象设计原则 SOLID
1.单一责任原则(SRP)
一个类只负责一个职责,修改类也只是因为这个职责发生变化
2.开放封闭原则(OCP)
一个实体(类,模块,函数)应该对外扩展开放,对内修改封闭。在扩展某类功能时应该添加而不是修改代码
3.里氏替换原则(LSP)
任何父类出现的地方子类都可以出现(检查继承是否合理)
4.接口隔离原则(ISP)
一个类依赖另一个类时,应该依赖最小的接口。依赖过多接口会使得子类需要实现过多方法。
5.依赖倒置原则(DIP)
一个类依赖另一个类时,应尽量依赖接口而非实现。
二、设计模式
1.工厂模式:定义一个工厂类,根据传入参数的不同,返回不同实例。
2.适配器模式
3.装饰器模式:一个子类只负责一个效果,通过委托的方式将这种效果累加到已经添加好其他效果的字符串(或其他)上。
4.策略模式:定义一组算法,每种放在一个类中,实现一个接口(或继承自一个类)。客户端可以选择一个类使用。
5.模板模式
6.迭代器模式
7.访问者模式(难以维护和扩展的if-else语句和类型强制转换)