从一个pojo类来看单一性原则
1. 背景
一日,我写一个配置类,类似如下:
1 | class XxxConfig { |
Note: 当时考虑toNode方法对XxxConfig的细节比较依赖,所以把这个方法放到了XxxConfig里。
2. 单一性原则
该类我分别让亮哥,阳哥review后,他们都一致建议我把toNode方法移除,因为破坏了单一性原则。缺点如下:
- 不符合单一性原则,toNode方法不是XxxConfig类的职责;
- 当两个类在不同的包时,会再成多余的依赖——XxxConfig所在的包必须依赖Node的包
修改
将toNode方法抽离到调用端的convert类中。例如:1
2
3
4
5
6
7
8
9A B
\ /
C
* A:XxxConfig所在包
* B: Node所在包
* C:调用端,此处建立XxxConfig到Node的转换逻辑;