大话设计模式-桥接模式

使用场景:桥接模式的核心意图就是将这些实现独立出来,让它们各自地变化。这就使得每种实现的变化不会影响其他实现,从而达到应对变化的目的。

多用聚合,少用继承

1. 手机软件抽象类、通讯录类、游戏类

package com.hj.designPattern.structural.bridge;


public abstract class Software {
    public abstract void softrun();
}


package com.hj.designPattern.structural.bridge;


public class GameSoft extends Software{
    @Override
    public void softrun() {
        System.out.println("游戏软件运行");
    }
}


package com.hj.designPattern.structural.bridge;


public class AddresSoft extends Software{
    @Override
    public void softrun() {
        System.out.println("通讯录软件运行");
    }
}

2. 手机品牌类、华为类、小米类

package com.hj.designPattern.structural.bridge;


public class PhoneBrand {
    protected Software software;

    PhoneBrand(Software software){
        this.software = software;
    }
    public void run() {
        software.softrun();
    }
}


package com.hj.designPattern.structural.bridge;


public class Huawei extends PhoneBrand{
    Huawei(Software software) {
        super(software);
    }

    @Override
    public void run() {
        System.out.print("华为");
        super.run();
    }
}


package com.hj.designPattern.structural.bridge;


public class Xiaomi extends PhoneBrand{
    Xiaomi(Software software) {
        super(software);
    }

    public void run(){
        System.out.print("小米");
        super.run();
    }
}

3. 测试类

package com.hj.designPattern.structural.bridge;


public class BridgeTest {
    public static void main(String[] args) {
        AddresSoft addresSoft = new AddresSoft();
        GameSoft gameSoft = new GameSoft();

        Huawei huaweiAddress = new Huawei(addresSoft);
        huaweiAddress.run();
        Huawei huaweiGame = new Huawei(gameSoft);
        huaweiGame.run();

        Xiaomi xiaomiAddress = new Xiaomi(addresSoft);
        xiaomiAddress.run();
        Xiaomi xiaomiGame = new Xiaomi(gameSoft);
        xiaomiGame.run();

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值