利用接口梳理业务、提升代码质量

69 阅读2分钟

在回顾公司代码的时候我发现大量的方法只被引用过一次,这种只被引用过一次的方法却单独被拆分出来,我称之为一种无效的拆分,无效拆分的主要原因不外乎以下几种:

第一,方法命名不规范导致其他人使用的时候没有能找到这个方法,自己又去实现一遍;

第二,方法设计的时候,没有考虑到通用性和复用性仅仅只是为了拆分而拆分,导致其他业务根本没办法调用这个方法。

接口的意义不仅仅在于对业务的抽象,它可以促使你在开发前期对项目进行深入的思考。不经过思考的代码总是很凌乱往往存在一个类里实现了重复的方法,或者在多个类里实现了同样的功能。而在项目开始之前,针对接口进行设计和思考,可以有效的避免这些问题。在项目开始之前我们就可以梳理需要用到的方法接口。提取出那些可以重用的部分,并且按照某种我们约定好的顺序和规则把它放在不同的接口类里面。这样定义好接口以后。我们能确保它是完备而且清晰的,剩下的只是去实现这些类。

我认为一个设计优秀的接口类应该是有迹可循的。所谓有迹可循指的是。如果你能确切地知道这个方法的功能应当是什么,那么你总可以通过一套规则去计算出它所在的类和方法名,比如返回值为a的抽象方法总是在一个名为a的接口里边,又比如查询的抽象方法总是以get开头,修改的抽象类方法总是以edit开头,并且get方法永远放在edit方法前面,比如返回值为列表的方法名总是包含all,而返回值为单个对象的方法名总是包含one。

接口应当是整体性的。所谓整体性,应当是所有的接口应该在项目前期一次性被设计好。项目中,后期的工作应当是来实现这些接口,而不应该去改变这些接口。如果接口确实需要改变,那么一定要从整体的视角去改变接口。思考当前接口改变以后是否会造成另一些功能不满足,进而思考是否需要为不满足的那一些功能设计新的接口。