桥接模式

2020-05-19  本文已影响0人  simplerandom

多个抽象或接口相关联,且支持实现无限扩展
姓名+旅行城市名

city

public interface City {
void travel();
}
public class NanJin implements City {
    @Override
    public void travel() {
        System.out.println("南京旅行");
    }
}
public class XiaMen implements City {
    @Override
    public void travel() {
        System.out.println("厦门旅行");
    }
}

name

public abstract class Name {
    City city;

    public Name(City city) {
        this.city = city;
    }
    public void xiaoFei(){

    }
}
public class XiaoMin extends Name {
    public XiaoMin(City city) {
        super(city);
    }

    @Override
    public void xiaoFei() {
        System.out.print("小明去");
        city.travel();
    }
}

测试

public class Test {
    public static void main(String[] args) {
        consume(new XiaoMin(new NanJin()));
    }
    public static void consume(Name name){
        name.xiaoFei();
    }
}

扩展Name的实现类

public class XiaMei extends Name {
    public XiaMei(City city) {
        super(city);
    }

    @Override
    public void xiaoFei() {
        System.out.print("小美去");
        city.travel();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读