抽象类还是接口?
抽象类定义对象的基础属性,不易改变。接口则定义对基础对象的扩展,并且为了代码复用,使用独立的类实现接口的方法。在扩展时将基础对象和行为对象就像组合。
解决的问题:
- 代码在多个子类中重复
- 运行时的行为不容易改变
- 改变父类会牵一发动全身,造成其他不想要的改变
- 实现了代码复用
设计原则:
- 找到应用中可能需要变化之处,把它们独立出来,不要和哪些不需要变化的代码混在一起
- 针对接口编程,而不是针对实现编程
- 多用组合,少用继承
策略模式结构图:
抽象类还是接口?
抽象类定义对象的基础属性,不易改变。接口则定义对基础对象的扩展,并且为了代码复用,使用独立的类实现接口的方法。在扩展时将基础对象和行为对象就像组合。
解决的问题:
- 代码在多个子类中重复
- 运行时的行为不容易改变
- 改变父类会牵一发动全身,造成其他不想要的改变
- 实现了代码复用
设计原则:
策略模式结构图: