[問題] define a constructor in interface?

看板java作者 (蒜˙遠古)時間11年前 (2014/08/11 19:25), 編輯推噓0(0011)
留言11則, 2人參與, 最新討論串1/1
嗨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

08/11 19:54, , 1F
interface又不管實作,為什麼要管怎麼實例化?
08/11 19:54, 1F

08/11 19:55, , 2F
你需要的是abstract class
08/11 19:55, 2F

08/11 20:03, , 3F
對! 腦袋打結沒想到XD 謝謝ssccg大!
08/11 20:03, 3F

08/11 20:03, , 4F
如果你認為實作類別裡面要存一個string,那就用abstract
08/11 20:03, 4F

08/11 20:04, , 5F
class,如果該類別該提供string,interface該定的是getter
08/11 20:04, 5F

08/11 20:13, , 6F
我認為使用者要給實作類別一個string
08/11 20:13, 6F

08/11 20:13, , 7F
而且應該要在初始化的時候給
08/11 20:13, 7F

08/11 20:14, , 8F
至於實作類別怎麼用就無所謂
08/11 20:14, 8F

08/11 20:14, , 9F
(雖然大部分時候還是要把string存起來就是)
08/11 20:14, 9F

08/11 20:15, , 10F
不過看來要規範constructor的介面只能用abstract
08/11 20:15, 10F

08/11 20:15, , 11F
class而非我之前找的interface的方向XD
08/11 20:15, 11F
文章代碼(AID): #1JwAWsEa (java)
文章代碼(AID): #1JwAWsEa (java)