软件设计 石家庄铁道大学信息学院
实验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();
}
}