[问题] 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