[問題] define a constructor in interface?

作者: michael0728n (蒜˙遠古)   2014-08-11 19:25:38
嗨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都一樣
感覺很直觀又酷 不知道有沒有辦法
謝謝大家
作者: ssccg (23)   2014-08-11 19:54:00
interface又不管實作,為什麼要管怎麼實例化?你需要的是abstract class
作者: michael0728n (蒜˙遠古)   2014-08-11 20:03:00
對! 腦袋打結沒想到XD 謝謝ssccg大!
作者: ssccg (23)   2014-08-11 20:03:00
如果你認為實作類別裡面要存一個string,那就用abstractclass,如果該類別該提供string,interface該定的是getter
作者: michael0728n (蒜˙遠古)   2014-08-11 20:13:00
我認為使用者要給實作類別一個string而且應該要在初始化的時候給至於實作類別怎麼用就無所謂(雖然大部分時候還是要把string存起來就是)不過看來要規範constructor的介面只能用abstractclass而非我之前找的interface的方向XD

Links booklink

Contact Us: admin [ a t ] ucptt.com