设计模式-桥接模式

设计模式-桥接模式

将抽象部分与它的实现部分分离,使它们都可以独立地变化

class diagram

比如我们现在手机上的APP在开发的时候都会开发两个版本,以适配ios和安卓,我们就拿这个来举例

先定义APP的抽象类

public abstract class MobileApp {
    abstract String getName();
}

再定义操作系统的抽象类,它聚合了APP

public abstract class MobileSystem {

    List<MobileApp> apps = new ArrayList<>();

    abstract String getName();

    public void addApp(MobileApp app){
        apps.add(app);
    }

    public void displayApps(){
        System.out.println(this.getName() + "支持的APP有:");
        apps.forEach(app -> System.out.println("\t" + app.getName()));
    }
}

然后写ios和安卓的实现类

public class IOS extends MobileSystem {
    @Override
    String getName() {
        return "ios";
    }
}

public class Android extends MobileSystem {
    @Override
    String getName() {
        return "安卓";
    }
}

再分别给出三种软件的实现类

public class AliPay extends MobileApp {
    @Override
    String getName() {
        return "支付宝";
    }
}

public class Wechat extends MobileApp {
    @Override
    String getName() {
        return "微信";
    }
}

public class NBA2K extends MobileApp {
    @Override
    String getName() {
        return "NBA 2K";
    }
}

使用

public class Demo {
    public static void main(String[] args) {
        MobileSystem android = new Android();
        android.addApp(new AliPay());
        android.addApp(new Wechat());

        MobileSystem ios = new IOS();
        ios.addApp(new AliPay());
        ios.addApp(new Wechat());
        ios.addApp(new NBA2K());

        android.displayApps();
        ios.displayApps();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值