2024/9/4

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

实验8:适配器模式
本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:
1、理解适配器模式的动机,掌握该模式的结构;
2、能够利用适配器模式解决实际问题。

[实验任务一]:双向适配器
实现一个双向适配器,使得猫可以学狗叫,狗可以学猫抓老鼠。
实验要求:
1. 画出对应的类图;

2.提交源代码;
// 目标接口
interface Mammals {
void bark();
void catchMouse();
}

// 被适配者:猫
class Cat {
public void catchMouse() {
System.out.println("猫在抓老鼠");
}
}

// 被适配者:狗
class Dog {
public void bark() {
System.out.println("狗在叫");
}
}

// 适配器:猫适配器
class CatAdapter implements Mammals {
private Cat cat;

public CatAdapter(Cat cat) {
this.cat = cat;
}

@Override
public void bark() {
System.out.println("猫学狗叫:汪汪汪");
}

@Override
public void catchMouse() {
cat.catchMouse();
}
}

// 适配器:狗适配器
class DogAdapter implements Mammals {
private Dog dog;

public DogAdapter(Dog dog) {
this.dog = dog;
}

@Override
public void bark() {
dog.bark();
}

@Override
public void catchMouse() {
System.out.println("狗学猫抓老鼠:汪汪汪");
}
}

// 客户端代码
public class AdapterPatternDemo {
public static void main(String[] args) {
Cat cat = new Cat();
Dog dog = new Dog();

// 猫学狗叫
CatAdapter catAdapter = new CatAdapter(cat);
catAdapter.bark();
catAdapter.catchMouse();

// 狗学猫抓老鼠
DogAdapter dogAdapter = new DogAdapter(dog);
dogAdapter.bark();
dogAdapter.catchMouse();
}
}
3.注意编程规范。

posted @ 2024-09-04 17:47  Hbro  阅读(19)  评论(0)    收藏  举报