适配器模式

    技术2026-08-13  21

    适配器模式

    总结:

    使某事物看起来更像另一个事物,但其本质还是原本的事物

    可以将一个适配器包装多个适配者(外观模式)

    下面用一段示例来说明:

    先定义一个狗接口

    //狗接口 public interface Dog { //叫的行为 public void jiao(); //跑的行为 public void pao(); }

     创建哈士奇类实现狗接口

    //哈士奇实现狗的行为 public class Husky implements Dog{ @Override public void jiao() { System.out.println("哈士奇怂怂的叫"); } @Override public void pao() { System.out.println("哈士奇怂怂的跑"); } }

      定义狼接口

    //狼接口 public interface Wolf { //叫的行为 public void jiao(); //跑的行为 public void pao(); }

     

     创建大灰狼类实现狼接口 

    public class TimberWolf implements Wolf{ @Override public void jiao() { System.out.println("大灰狼恶狠狠的叫"); } @Override public void pao() { System.out.println("大灰狼恶狠狠的跑"); } }

      定义一个适配器类,定义狼实例对象属性,并通过构造方法传入对象调用狼的动作

    public class Adapter implements Dog { TimberWolf wolf; public Adapter(TimberWolf wolf) { this.wolf = wolf; } @Override public void jiao() { wolf.jiao(); } @Override public void pao() { wolf.pao(); } }

    用狗接口创建适配器对象并传入狼对象,然后再定义的调用方法中。适配器内传入dog,调用方法。虽然传入的事dog本质是狼,所以打印的还是狼动作,不过已经是一匹披着狗皮的适配狼了

    public class Show { public static void main(String[] args) { Husky husky = new Husky(); TimberWolf wolf = new TimberWolf(); Dog dog = new Adapter(wolf); System.out.println("小狗行为"); testDog(husky); System.out.println("狼崽子行为"); wolf.jiao(); wolf.pao(); System.out.println("披着狗皮的狼"); testDog(dog); } static void testDog(Dog dog) { dog.jiao(); dog.pao(); } }

    执行结果:

     

    Processed: 0.013, SQL: 9