インタフェース設計の原則を学ぶ
2147 ワード
package com.mode;
/*
。 , ,
。
, 3 。
, :
1. , 。
2. , ,
。 ,
。
3. , 。 。
*/
interface I1 {
public void method1();
}
interface I2 {
public void method2();
public void method3();
}
interface I3 {
public void method4();
public void method5();
}
class A {
public void depend1(I1 i) {
i.method1();
}
public void depend2(I2 i) {
i.method2();
}
public void depend3(I2 i) {
i.method3();
}
}
class B implements I1, I2 {
public void method1() {
System.out.println(" B I1 1");
}
public void method2() {
System.out.println(" B I2 2");
}
public void method3() {
System.out.println(" B I2 3");
}
}
class C {
public void depend1(I1 i) {
i.method1();
}
public void depend2(I3 i) {
i.method4();
}
public void depend3(I3 i) {
i.method5();
}
}
class D implements I1, I3 {
public void method1() {
System.out.println(" D I1 1");
}
public void method4() {
System.out.println(" D I3 4");
}
public void method5() {
System.out.println(" D I3 5");
}
}
public class Client {
public static void main(String[] args) {
A a = new A();
a.depend1(new B());
a.depend2(new B());
a.depend3(new B());
C c = new C();
c.depend1(new D());
c.depend2(new D());
c.depend3(new D());
}
}
原文:http://blog.csdn.net/zhengzhb/article/details/7296921