我查看了一些代码并注意到这样的结构:public interface TestIntrerface { void doFirst(); void doSecond();}public interface Interface1 extends TestIntrerface { Interface1 inter = new FirstClass();}public interface Interface2 extends TestIntrerface { Interface2 intr = new SecondClass();}public class FirstClass implements Interface1 { public void doFirst() { //... } public void doSecond() { //... }}public class SecondClass implements Interface2 { public void doFirst() { //... } public void doSecond() { //... }}public class Test { public static void main(String[] args) { Interface1.inter.doFirst(); Interface2.intr.doSecond(); }}它对我来说有潜力,但我以前从未见过这种结构。两个问题:这个模式的名称是什么(是那个模式(?))?在现实世界中使用它是一个很好的做法吗?
1 回答
回首忆惘然
TA贡献1847条经验 获得超11个赞
这是两个常量声明 inter
和intr
接口的示例。这不是一种模式,我不会说这是一个好的做法。
Interface1
并且Interface2
毫无意义:它们不补充/实现它们扩展的接口。基本上,它们是可以在其他地方定义的常量的持有者。请注意,常量绑定到特定的类,而接口具有更广泛的含义,提供通用接口。名称
inter
和intr
很糟糕,它们没有告诉我们这些常量代表什么/做什么。
一个更合理的例子看起来像
interface TestInterface {
void doFirst();
void doSecond();
TestInterface EMPTY = new TestInterface() {
@Override
public void doFirst() {}
@Override
public void doSecond() {}
};
}
whereEMPTY表明它是接口的默认(且空)实现。请注意,我将其称为EMPTY(而不是empty),因为它始终是一个public static final字段。
添加回答
举报
0/150
提交
取消