2 OOP七大原则
- 开闭原则:对扩展开放,对修改关闭
- 应用需求改变时,尽量不修改原来的代码,可以进行扩展,扩展模块不影响原来模块的运行
- 里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立
- 子类可以继承父类的功能,尽量不要去改变父类原有的功能(不要重写),需要时可以增加新的方法
- 依赖倒置原则:要面向接口编程,不要面向实现编程
- 抽象不依赖细节,细节依赖抽象
- 单一职责原则:控制类的粒度大小、将对象解耦、提高其内聚性
- 一个方法最好只完成一件事情,原子性
- 接口隔离原则:要为各个类建立它们需要的专用接口
- 对接口的规范,同上
- 迪米特法则:只与你的直接朋友交谈,不和“陌生人”说话
- ”直接朋友“是指当前对象或者当前对象创建的对象,没用直接联系的不要直接调用,可以用中间类或者中间对象进行传递
- 合成复用原则:尽量先使用组合或者聚类等关联关系来实现,其次才考虑使用继承关系来实现
- has a 组合
- is a 继承
- 和里氏替换原则相辅相成