这次重构了快捷键,我发现我沿用之前的代码写这个功能,我竟然要修改那么多文件,添加很多个方法。这显然是之前的设计有问题。我觉得面对这样的代码都不重构,这就是码德的问题了。
之前设计的问题在于:
1、将directive的代码分离了一些成为一个service,但是这个service却没有提供很独立的功能。
2、扩展性特别差,添加一个新功能,需要做很多重复性的代码。
3、模块糅杂,不应该将快捷键的初始化放在其他独立功能的service里面。
这是我一开始发现的一些问题。我尝试去重构,只是想“把代码写合理”了。但后来我发现,其实我更应该有更高的追求。所以我设计了一个更好的方案。
通过配置来管理。快捷键的属性:key,value,localkey,canShowOn,callback,initOn来控制。要能做到的是以后只要通过更改配置就能自动更改页面的显示,管理行为。扩展的话,只要通过配置,写对应的逻辑判断就可以。
这次的重构让我比较深刻的理解:职能单一,配置管理。