JAVA设计模式——适配器模式
适配器模式
将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。
有“两种”适配器:“对象”适配器和“类”适配器。
1)对象适配器:使用对象组合,以修改的接口包装被适配者,被适配者的任何子类都可以搭配着适配器使用。
2)类适配器:使用继承,不需要重新实现整个被适配者。但是需要多重继承才能实现它,这在JAVA中是不可能的。
具体例子
适配者接口:Duck.java
package com.designpattern.adapter;public class Test {public static void main(String[] args) {MallardDuck duck = new MallardDuck();WildTurkey turkey = new WildTurkey();Duck turkeyAdapter = new TurkeyAdapter(turkey);System.out.println("\nThe Turkey says...");turkey.gobble();turkey.fly();System.out.println("\nThe Duck says...");duck.quack();duck.fly();System.out.println("\nThe TurkeyAdapter says...");//像鸭的火鸡testDuck(turkeyAdapter);}private static void testDuck(Duck duck){duck.quack();duck.fly();}}1)客户通过目标接口(Duck)调用适配器(TurkeyAdapter)的方法对适配器发出请求。
2)适配器使用被适配者接口(Turkey)把请求转换成被适配者的一个或多个调用接口。
3)客户接收到调用的结果,但并未察觉这一切是适配器在起转换作用。