[问题] 接口参数设计 (AOP)

楼主: violet90079 (ˊ__>ˋ)   2017-02-21 20:20:18
各位先进好,小弟对接口参数设计上有些问题想请各
目前的案子架构,有切分很多系统别 (约莫17个子系统)
今天需要提供档案给系统A,于是系统A的工程师开给我们了这么一个接口供我们呼叫
public boolean importData(String serviceId,
String caseId, List<File> fileList);
今天系统A的工程师,说要用AOP记录是哪个系统呼叫的,
于是所以要我们参数多传一个 String 系统代码,就变成下面这样
public boolean importData(String systemCode, String serviceId,
String caseId, List<File> fileList);
但是这个新加的参数,在方法实作里面完全没用到,纯粹为了AOP记录系统代码
请问各位怎么看这设计XD
p.s 此接口仅供我们系统使用
p.s 系统A工程师说: 他们提供给别人呼叫的所有接口,都要加"系统代码"这个参数
小弟学艺不精,难道这是一种特殊设计吗?
感谢各位指点╭(─╴╴─)╮ ▃▇
作者: adrianshum (Alien)   2017-02-23 09:29:00
参考一下各logging lib 的MDC。不然就以其他方法提供这类资料吧。为了aspect 需要而改interface 某程度是违背了AOP 的用意
作者: ssccg (23)   2017-02-23 09:46:00
要设计成这样不是不行,不过不觉得这叫AOP..对方应该是说改了这接口之后,他们在用AOP加上log程式时,才有所需的资讯,不然原本是根本没这资讯,如果需求就是要那不管他们log实作是不是用AOP,都还是需要传入这资讯你说方法实作没用到,但log用AOP实作还是直接写在方法里是他的实作细节,跟你caller没关系吧,如果你们之间已经确定依赖同一个log lib,那就如一楼所说的MDC如果就是独立系统,那不管对方内部什么用途,就是接口变更
楼主: violet90079 (ˊ__>ˋ)   2017-02-25 18:49:00
问了很多人,大家都是说接口被污染了XD

Links booklink

Contact Us: admin [ a t ] ucptt.com