作者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://www.ptt.cc/bbs/java/M.1487679620.A.B29.html
※ 編輯: violet90079 (61.230.153.71), 02/21/2017 20:22:33
→ adrianshum: 參考一下各logging lib 的MDC。不然就以其他方法提供 02/23 09:29
→ adrianshum: 這類資料吧。為了aspect 需要而改interface 某程度是 02/23 09:29
→ adrianshum: 違背了AOP 的用意 02/23 09:29
→ ssccg: 要設計成這樣不是不行,不過不覺得這叫AOP.. 02/23 09:46
→ ssccg: 對方應該是說改了這介面之後,他們在用AOP加上log程式時, 02/23 09:57
→ ssccg: 才有所需的資訊,不然原本是根本沒這資訊,如果需求就是要 02/23 09:57
→ ssccg: 那不管他們log實作是不是用AOP,都還是需要傳入這資訊 02/23 09:57
→ ssccg: 你說方法實作沒用到,但log用AOP實作還是直接寫在方法裡是 02/23 10:08
→ ssccg: 他的實作細節,跟你caller沒關係吧,如果你們之間已經確定 02/23 10:09
→ ssccg: 依賴同一個log lib,那就如一樓所說的MDC 02/23 10:10
→ ssccg: 如果就是獨立系統,那不管對方內部什麼用途,就是介面變更 02/23 10:11
→ violet90079: 問了很多人,大家都是說介面被汙染了XD 02/25 18:49