物件轉接器

比如到大陸去旅遊,他們的電壓是220v,要買個轉接器把220v轉成5v,才能給手機充電使用,手機只能用5v。

下圖中轉接器Adapter用到Voltage220類別,Adapter要實作output5v的方法,把220v轉成5v輸出

因為使用new Adater()時把Voltage220類別傳入,所以是有生死相隨的關係,使用實心菱形,代表組合,組合的意思是關係無法分開,一起建立一起被記憶體回收。

Phone類別,有一個chage()充電的方法,用到Voltage5類別。

img

程式碼

Voltage5V

1
2
3
public interface Voltage5V {
  int output5v();
}

Voltage220

1
2
3
4
5
public class Voltage220 {
  int output220v() {
    return 220;
  }
}

Adapter

1
2
3
4
5
6
7
8
9
10
public class Adapter implements Voltage5V{
  private Voltage220 voltage220;
  public Adapter(Voltage220 voltage220) {
    this.voltage220 = voltage220;
  }
  @Override
  public int output5v() {
    return voltage220.output220v() / 44;
  }
}

Phone

1
2
3
4
5
6
7
8
9
public class Phone {
  public void charg(Voltage5V voltage5V) {
    if ( voltage5V.output5v() == 5) {
      System.out.println("can charging");
    } else {
      System.out.println("can not charging");
    }
  }
}

main主程式

1
2
3
4
5
6
7
public class Test {
  public static void main(String[] args) {
    Voltage5V voltage5V = new Adapter(new Voltage220());
    Phone phone = new Phone();
    phone.charg(voltage5V);
  }
}
can charging

results matching ""

    No results matching ""