作者violet90079 (ˊ__>ˋ)
看板java
标题[问题] 介面参数设计 (AOP)
时间Tue Feb 21 20:20:18 2017
各位先进好,小弟对介面参数设计上有些问题想请各
目前的案子架构,有切分很多系统别 (约莫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工程师说: 他们提供给别人呼叫的所有介面,都要加"系统代码"这个参数
小弟学艺不精,难道这是一种特殊设计吗?
感谢各位指点╭(─╴╴─)╮ ▃▇
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.153.71
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1487679620.A.B29.html
※ 编辑: violet90079 (61.230.153.71), 02/21/2017 20:22:33
1F:→ adrianshum: 参考一下各logging lib 的MDC。不然就以其他方法提供 02/23 09:29
2F:→ adrianshum: 这类资料吧。为了aspect 需要而改interface 某程度是 02/23 09:29
3F:→ adrianshum: 违背了AOP 的用意 02/23 09:29
4F:→ ssccg: 要设计成这样不是不行,不过不觉得这叫AOP.. 02/23 09:46
5F:→ ssccg: 对方应该是说改了这介面之後,他们在用AOP加上log程式时, 02/23 09:57
6F:→ ssccg: 才有所需的资讯,不然原本是根本没这资讯,如果需求就是要 02/23 09:57
7F:→ ssccg: 那不管他们log实作是不是用AOP,都还是需要传入这资讯 02/23 09:57
8F:→ ssccg: 你说方法实作没用到,但log用AOP实作还是直接写在方法里是 02/23 10:08
9F:→ ssccg: 他的实作细节,跟你caller没关系吧,如果你们之间已经确定 02/23 10:09
10F:→ ssccg: 依赖同一个log lib,那就如一楼所说的MDC 02/23 10:10
11F:→ ssccg: 如果就是独立系统,那不管对方内部什麽用途,就是介面变更 02/23 10:11
12F:→ violet90079: 问了很多人,大家都是说介面被污染了XD 02/25 18:49