5.设计模式之适配器模式

适配器模式:将一个类的接口,转换为客户期望的另一个类的接口。适配器让原本接口不兼容的类可以合作无间。

1. 鸭子、火鸡接口

public interface Duck {
    
    
    void quack();
    void fly();
}
public interface Turkey {
    
    
    void gobble();
    void fly();
}

2. 火鸡实现器

public class WildTurkey implements Turkey {
    
    

    @Override
    public void gobble() {
    
    
        System.out.println("Gobble gobble");
    }

    @Override
    public void fly() {
    
    
        System.out.println("I am flying a short distance");
    }
}

3. 火鸡适配器

public class TurkeyAdapter implements Duck {
    
    
    private Turkey turkey;

    public TurkeyAdapter(Turkey turkey) {
    
    
        this.turkey = turkey;
    }

    @Override
    public void quack() {
    
    
        turkey.gobble();
    }

    @Override
    public void fly() {
    
    
        for (int i = 0; i < 5; i++) {
    
    
            turkey.fly();
        }
    }
}

4. 测试

public class AdpterTest {
    
    

    @Test
    public void testDuckAdapter() {
    
    
        Turkey wildTurkey = new WildTurkey();
        Duck turkeyAdapter = new TurkeyAdapter(wildTurkey);

        turkeyAdapter.quack();
        turkeyAdapter.fly();
    }
}

5. 输出

Gobble gobble
I am flying a short distance
I am flying a short distance
I am flying a short distance
I am flying a short distance
I am flying a short distance

再如旧世界的Enumeration与新世界的Iterator进行适配

猜你喜欢

转载自blog.csdn.net/SJshenjian/article/details/130874568