[問題] 介面參數設計 (AOP)

看板java作者 (ˊ__>ˋ)時間8年前 (2017/02/21 20:20), 8年前編輯推噓0(0012)
留言12則, 3人參與, 最新討論串1/1
各位先進好,小弟對介面參數設計上有些問題想請各 目前的案子架構,有切分很多系統別 (約莫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

02/23 09:29, , 1F
參考一下各logging lib 的MDC。不然就以其他方法提供
02/23 09:29, 1F

02/23 09:29, , 2F
這類資料吧。為了aspect 需要而改interface 某程度是
02/23 09:29, 2F

02/23 09:29, , 3F
違背了AOP 的用意
02/23 09:29, 3F

02/23 09:46, , 4F
要設計成這樣不是不行,不過不覺得這叫AOP..
02/23 09:46, 4F

02/23 09:57, , 5F
對方應該是說改了這介面之後,他們在用AOP加上log程式時,
02/23 09:57, 5F

02/23 09:57, , 6F
才有所需的資訊,不然原本是根本沒這資訊,如果需求就是要
02/23 09:57, 6F

02/23 09:57, , 7F
那不管他們log實作是不是用AOP,都還是需要傳入這資訊
02/23 09:57, 7F

02/23 10:08, , 8F
你說方法實作沒用到,但log用AOP實作還是直接寫在方法裡是
02/23 10:08, 8F

02/23 10:09, , 9F
他的實作細節,跟你caller沒關係吧,如果你們之間已經確定
02/23 10:09, 9F

02/23 10:10, , 10F
依賴同一個log lib,那就如一樓所說的MDC
02/23 10:10, 10F

02/23 10:11, , 11F
如果就是獨立系統,那不管對方內部什麼用途,就是介面變更
02/23 10:11, 11F

02/25 18:49, , 12F
問了很多人,大家都是說介面被汙染了XD
02/25 18:49, 12F
文章代碼(AID): #1Oh324if (java)
文章代碼(AID): #1Oh324if (java)