qt0:
私はいくつかのコードを見て、このような構成に気づきました:
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();
}
}
それは私のために可能性を秘めているが、私は前に、その構造を見たことがありません。二つの質問:
- このパターンの名前は何である(そのパターンですか(?))?
- 現実の世界でこれを使用することをお勧めですか?
アンドリューTobilko:
これは2つの例です定数宣言 inter
とintr
インターフェースです。それは、パターンではないと私はそれが良い習慣だと言うではないでしょう。
Interface1
そしてInterface2
無意味です:彼らは/補完し、彼らは拡張インターフェースを実装していません。基本的に、彼らはどこかに定義されている可能性定数のホルダーです。定数はインターフェイスは広い意味を搬送しながら、特定のクラスにバインドされた一般的なインタフェースを提供していることに留意されたいです。名前
inter
とはintr
恐ろしいであり、彼らはこれらの定数は、/表し何教えていません。
より多くの正当な例は次のようになります。
interface TestInterface {
void doFirst();
void doSecond();
TestInterface EMPTY = new TestInterface() {
@Override
public void doFirst() {}
@Override
public void doSecond() {}
};
}
どこにEMPTY
それがデフォルト(空)インタフェースの実装だと伝えます。私はそれを呼ばれることに注意してくださいEMPTY
(ではないempty
、それはいつもだから)public static final
フィールド。