azure011328

导航

 

软件设计                  石家庄铁道大学信息学院

 

实验8:适配器模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解适配器模式的动机,掌握该模式的结构;

2、能够利用适配器模式解决实际问题。

 
   

 


[实验任务一]:双向适配器

实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。

实验要求:

 

// 猫的行为接口

public interface Cat {

    void catchMouse();

}

 

// 狗的行为接口

public interface Dog {

    void bark();

}

// 具体的猫类

public class CatImpl implements Cat {

    @Override

    public void catchMouse() {

        System.out.println("猫在抓老鼠");

    }

}

 

// 具体的狗类

public class DogImpl implements Dog {

    @Override

    public void bark() {

        System.out.println("狗在叫");

    }

}

// 猫适配狗的适配器

public class CatToDogAdapter implements Dog {

    private Cat cat;

 

    public CatToDogAdapter(Cat cat) {

        this.cat = cat;

    }

 

    @Override

    public void bark() {

        cat.catchMouse(); // 猫学狗叫,实际上是抓老鼠

    }

}

 

// 狗适配猫的适配器

public class DogToCatAdapter implements Cat {

    private Dog dog;

 

    public DogToCatAdapter(Dog dog) {

        this.dog = dog;

    }

 

    @Override

    public void catchMouse() {

        dog.bark(); // 狗学猫抓老鼠,实际上是叫

    }

}

public class AdapterTest {

    public static void main(String[] args) {

        Cat cat = new CatImpl();

        Dog dog = new DogImpl();

 

        // 猫学狗叫

        Dog catAsDog = new CatToDogAdapter(cat);

        catAsDog.bark();

 

        // 狗学猫抓老鼠

        Cat dogAsCat = new DogToCatAdapter(dog);

        dogAsCat.catchMouse();

    }

}

posted on 2024-11-13 09:20  淮竹i  阅读(1)  评论(0编辑  收藏  举报