看板 java 關於我們 聯絡資訊
各位先進好,小弟對介面參數設計上有些問題想請各 目前的案子架構,有切分很多系統別 (約莫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