在面向对象开发过程中,接口编程是最常见的,那么接口如果变动(最常见的参数变动),则会导致修改所有引用该接口的地方。
现在开发中,接口参数有两种,一个是定义各个形参,需要什么定义什么,这也就是为什么有点方法有多个重载;二是将需要的参数定义为一个参数对象,将这个对象作为形参,也有的是map的形式,其实都是为了形成统一的一个接口定义,便于以后添加或删除参数。
下面说说优缺点:
第一种,给调用者明确的提示,就是说我这个方法需要什么参数,一目了然;但是如果以后接口有变动,要么重载,要么修改,重载越多会使得代码很冗肿,而且有时候重载无法实现毕竟重载要么参数类型个数不同,要么参数类型不同,修改则会影响所有的调用方法。而且如果参数很多的时候,调用者可能会写错顺序。
第二种,将所需的参数定义为一个对象,接口清晰且便于参数的修改,而且便于json对象和参数对象的互转,在webapi接口编程时,最好使用这种方式。缺点是调用者不知道哪些参数是必须的,但是这个可以使用对象的构造函数来解决。还有一个就是要对每一个接口定义一个参数对象。
如果在接口参数很少只有一两个的情况下 可以使用第一种,如果参数比较多而且估计以后变动比较大则选择第二种。