这一节讲的是抽取代码,怎样压缩一个函数
代码块
包括for、if、try等等,代码块里面的内容应该只有一个方法,因为本身if这些已经是一些逻辑了,如果代码块里还有其它的业务逻辑,就说明这个函数没有做一件事
工具代码
对于写一个工具其实我们还是需要谨慎的。一提到工具类,至少我的第一反应就是静态,而且写这种工具方法的难点就在于判断它应不应该是一个静态方法。
我觉得静态工具方法,首先要满足的一个要求就是不会变化。这一点其实是相对于单例Service来看的。Spring管理的单例Service相比于直接使用静态方法,优点就是可以方便修改实现。比如在我们的代码里,碰到要向MQ里发消息的逻辑的时候,会用到对应的MQ Service。这里就可以将业务代码和测试代码分别写一个实现,在两个地方分别注册实现。这样就可以非常方便的实现测试不会依赖环境。
静态方法比起我们的service,最大的好处就是方便好写。如果要写service的话还需要到指定的配置类中进行注册,所有的service都在那一个地方注册,就很容易发生代码冲突。静态方法就完美解决了这个问题,包括我最开始接手扩展的一些接口,都是用静态方法做的service。
静态方法我觉得最好还要满足实现简单。如果一个静态方法的实现用了几百行,那很大概率会出现一个void的update函数的情况。这种时候其实不如把里面的实现都抽到一个类里面去,放弃静态。
创建大量通用代码
我觉得这里就是我们的项目可以优化的地方。我们的很多Utils会通过业务放在了很多零散的地方,DateUtil就有2~3个。这样就很容易写出重复的代码。最好可以聚拢现在的Utils,规范代码的位置。(好像已经开始做了)
网友评论