JAVA常用设计模式1 Adapter

一个适配器允许不带有兼容接口的组件之间进行通信。
适配器模式是使用面向对象设计概念的优秀示例,其中一个原因就是因为他非常简单。
同时,它也是有关三个重要设计原则的优秀示例:委托,继承和抽象。

概念UML类图
JAVA常用设计模式1 Adapter_第1张图片
实例类图
JAVA常用设计模式1 Adapter_第2张图片

 1 //  Triks.java
 2
 3 package  oyjpart.designpattern;
 4
 5 public   interface  Tricks  {
 6    public void walk();
 7    public void run();
 8    public void fetch();
 9}

10


 

 1 //  DogShow.java
 2
 3 package  oyjpart.designpattern;
 4
 5 public   class  DogShow  {
 6    public void compete(Tricks target) {
 7        target.run();
 8        target.walk();
 9        target.fetch();
10    }

11    
12    public static void main(String[] args) {
13        OldDog oldDog = new OldDog("Tim");
14        OldDogTricksAdapter oldDogTricksAdapter = new OldDogTricksAdapter(oldDog); 
15        new DogShow().compete(oldDogTricksAdapter);
16    }

17}

18
19

 

 

 1 //  OldDog.java
 2
 3 package  oyjpart.designpattern;
 4
 5 public   class  OldDog  {
 6    String name;
 7    
 8    public OldDog(String name) {
 9        this.name = name;
10    }

11    
12    public void walk() {
13        System.out.println("Old Dog " + name + " is walking");
14    }

15    
16    public void sleep() {
17        System.out.println("Old Dog " + name + " is sleeping");
18    }

19    
20}

21
22

 

 

 1
 2 //  OldDogTricksAdapter.java
 3
 4 package  oyjpart.designpattern;
 5
 6 public   class  OldDogTricksAdapter  implements  Tricks  {
 7    private OldDog adaptee;
 8    
 9    public OldDogTricksAdapter(OldDog oldDog) {
10        this.adaptee = oldDog;
11    }

12
13    public void walk() {
14        System.out.println("This dog can walk");
15    }

16
17    public void fetch() {
18        System.out.println("This dog cannot fetch");
19    }

20    
21    public void run() {
22        System.out.println("This dog cannot run");
23    }

24}

25
26

你可能感兴趣的:(JAVA常用设计模式1 Adapter)