作者michael0728n (蒜˙遠古)
看板java
標題[問題] define a constructor in interface?
時間Mon Aug 11 19:25:38 2014
嗨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