设计模式7:适配器模式Adapter
场景:男性适配女性
1、类适配-采用继承方式
男性接口
public interface Male {
public void man();
public void name();
public void age();
}
女性类
public class Female {
public void name() {
System.out.println("她的名字是安妮");
}
public void age(){
System.out.println("她99岁了");
}
}
女性适配男性
public class FemaleAdapter extends Female implements Male{
@Override
public void man() {
System.out.println("这是一个女性");
}
@Test
public void test(){
FemaleAdapter femaleAdapter =new FemaleAdapter();
femaleAdapter.age();
femaleAdapter.name();
femaleAdapter.man();
}
}
运行结果
2、对象适配-采用组合
男性接口
public interface Man {
public void male();
public void age();
}
女性接口
public interface Woman {
public void female();
public void age();
}
男性对象
public class OneMan implements Man{
@Override
public void male() {
System.out.println("这是一个男性");
}
@Override
public void age() {
System.out.println("他88岁了");
}
}
女性对象
public class OneWoman implements Woman{
@Override
public void female() {
System.out.println("这是一个女性");
}
@Override
public void age() {
System.out.println("她99岁了");
}
}
女性适配男性
public class WomanAdapter implements Man{
Woman woman;
public WomanAdapter(Woman woman) {
this.woman = woman;
}
@Override
public void male() {
woman.female();
}
@Override
public void age() {
woman.age();
}
}
调用
@Test
public void test(){
WomanAdapter womanAdapter =new WomanAdapter(new OneWoman());
womanAdapter.male();
womanAdapter.age();
}
运行结果