我查看了一些代碼并注意到這樣的結構: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
毫無意義:它們不補充/實現它們擴展的接口?;旧希鼈兪强梢栽谄渌胤蕉x的常量的持有者。請注意,常量綁定到特定的類,而接口具有更廣泛的含義,提供通用接口。名稱
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
提交
取消