看板 java 關於我們 聯絡資訊
嗨JAVA板的大家 想問一個奇妙的結構問題 簡單來說我想定義一個幫忙抓資料跟傳資料上去的interface (用Android, 但我想這個問題應該是JAVA通用) 所以我想定義一個簡單的interface 裡面可以設定URL 傳資料跟抓資料 簡化版是這樣: interface A{ public void setURL(String str); public int getInt(); //get int from server public void pushInt(int i); //push int to server } //當然其實get跟push參數更複雜這邊我刻意簡化以聚焦問題 但是設計的時候我料想 implements A的class應該在constructor塞URL的String進去 如下所示: A a = new A_i(urlString);// A_i implements A // no need to a.setURL(urlString) a.pushInt(123); 所以其實不用定義setURL這個東西 但是不知道要怎樣寫 才能規範implements interface的時候 一定要有一個constructor是吃一個String參數的 以確保這個A被implements時style的一致性 目標是在生成javadoc的時候 在interface A的頁面很清楚讓使用者知道 URL就是constructor的時候塞進去的 你用哪個implement的class都一樣 感覺很直觀又酷 不知道有沒有辦法 謝謝大家 -- 人只有兩個時候才會感受到自己存在: 大幅進步時、大幅墮落時 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.44.77.246 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1407756342.A.3A4.html
ssccg: interface又不管實作,為什麼要管怎麼實例化? 08/11 19:54
ssccg: 你需要的是abstract class 08/11 19:55
michael0728n: 對! 腦袋打結沒想到XD 謝謝ssccg大! 08/11 20:03
ssccg: 如果你認為實作類別裡面要存一個string,那就用abstract 08/11 20:03
ssccg: class,如果該類別該提供string,interface該定的是getter 08/11 20:04
michael0728n: 我認為使用者要給實作類別一個string 08/11 20:13
michael0728n: 而且應該要在初始化的時候給 08/11 20:13
michael0728n: 至於實作類別怎麼用就無所謂 08/11 20:14
michael0728n: (雖然大部分時候還是要把string存起來就是) 08/11 20:14
michael0728n: 不過看來要規範constructor的介面只能用abstract 08/11 20:15
michael0728n: class而非我之前找的interface的方向XD 08/11 20:15