作者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://webptt.com/cn.aspx?n=bbs/java/M.1407756342.A.3A4.html
1F:→ ssccg: interface又不管实作,为什麽要管怎麽实例化? 08/11 19:54
2F:→ ssccg: 你需要的是abstract class 08/11 19:55
3F:→ michael0728n: 对! 脑袋打结没想到XD 谢谢ssccg大! 08/11 20:03
4F:→ ssccg: 如果你认为实作类别里面要存一个string,那就用abstract 08/11 20:03
5F:→ ssccg: class,如果该类别该提供string,interface该定的是getter 08/11 20:04
6F:→ michael0728n: 我认为使用者要给实作类别一个string 08/11 20:13
7F:→ michael0728n: 而且应该要在初始化的时候给 08/11 20:13
8F:→ michael0728n: 至於实作类别怎麽用就无所谓 08/11 20:14
9F:→ michael0728n: (虽然大部分时候还是要把string存起来就是) 08/11 20:14
10F:→ michael0728n: 不过看来要规范constructor的介面只能用abstract 08/11 20:15
11F:→ michael0728n: class而非我之前找的interface的方向XD 08/11 20:15