一、定义
适配器模式: 将一个类的接口,转换成客户希望的另一个接口。适配器将原本接口不兼容的类可以合作无间。
二、例子
package com.fengshu.qdbuy;
/**
* 对象适配器例子
*
* @author fengshuzi
*
*/
public class TurkeyAdapter implements Duck {
Turkey turkey;
public TurkeyAdapter(Turkey turkey) {
this.turkey = turkey;
}
@Override
public void quack() {
turkey.gobble();
}
@Override
public void fly() {
turkey.fly();
}
public static void main(String[] args) {
Turkey turkey = new WildTurkey();
Duck duck1 = new TurkeyAdapter(turkey);
Duck duck2 = new TurkeyAdapter1();
duck1.quack();
duck2.quack();
}
}
interface Duck {
public void quack();
public void fly();
}
class MallarDuck implements Duck {
@Override
public void quack() {
System.out.println("quack");
}
@Override
public void fly() {
System.out.println("I am flying!");
}
}
interface Turkey {
public void gobble();// 火鸡不会呱呱叫只会咯咯叫
public void fly();
}
class WildTurkey implements Turkey {
@Override
public void gobble() {
System.out.println("gobble");
}
@Override
public void fly() {
System.out.println("I am flying!");
}
}
/**
* 类适配器
*
* @author fengshuzi
*
*/
class TurkeyAdapter1 extends WildTurkey implements Duck {
@Override
public void quack() {
gobble();
}
}
三、关键点
1、大多数的适配器模式都是让一个适配器去包装一个被适配者
2、使用对象组合,以修改的接口包装被适配者。
四、类图