王争《设计模式之美》学习笔记
如何理解“对扩展开放、修改关闭”?
开闭原则
- 开闭原则:SOLID 中的第二个原则,英文全称是 Open Closed Principle,简写为OCP。
- 开闭原则是 SOLID 中最难理解、最难掌握,同时也是最有用的一条原则。
- 对扩展开放、修改关闭,直接影响代码的扩展性,扩展性是代码质量最重要的衡量标准之一。
项目实战
- API 接口监控告警的代码
- Alert类:
- 属性两个:AlertRule 存储告警规则,Notification 是告警通知类
- 方法:check()主要业务逻辑两种报警场景
- 此时要添加一种报警场景,修改:
- check()增加一个参数
- 在check()方法内部增加新报警场景的逻辑代码
- 修改单元测试
- 用扩展的方案,要先重构Alert类:
- 将check()方法的多参数,封装成ApiStatInfo 类
- 引入handler概念,将多种报警场景放在各handler中
- 此时要添加一种报警场景,扩展:
- 在ApiStatInfo 类中新增属性
- 添加一个新的报警场景的handler类
- 重构后的代码十分灵活,添加新的报警场景ÿ