美文网首页
桥接模式-手机问题

桥接模式-手机问题

作者: Shaw_Young | 来源:发表于2021-01-17 15:24 被阅读0次

1.手机操作问题

现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网、打电话等),如图:


2.传统方案解决收集操作问题

传统方法对应的类图


3.桥接模式解决收集操作问题

使用桥接模式改进传统方式,让程序具有更好的扩展性,利用程序维护


package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:04
 */
public interface Brand {

    void open();

    void close();

    void call();

}
package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:04
 */
public class XiaoMi implements Brand {
    @Override
    public void open() {
        System.out.println("小米手机开机");
    }

    @Override
    public void close() {
        System.out.println("小米手机关机");
    }

    @Override
    public void call() {
        System.out.println("小米手机打电话");
    }
}
package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:05
 */
public class Vivo implements Brand {
    @Override
    public void open() {
        System.out.println("Vivo手机开机");
    }

    @Override
    public void close() {
        System.out.println("Vivo手机关机");
    }

    @Override
    public void call() {
        System.out.println("Vivo手机打电话");
    }
}
package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:06
 */
public abstract class Phone {

    /**
     * 组合品牌
     */
    private Brand brand;

    /**
     * 构造器
     */
    public Phone(Brand brand) {
        this.brand = brand;
    }

    protected void open() {
        brand.open();
    }

    protected void close() {
        brand.close();
    }

    protected void call() {
        brand.call();
    }
}
package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:09
 */
public class FoldedPhone extends Phone {
    /**
     * 构造器
     */
    public FoldedPhone(Brand brand) {
        super(brand);
    }

    public void open() {
        super.open();
        System.out.println("折叠样式手机");
    }

    public void close() {
        super.close();
        System.out.println("折叠样式手机");
    }

    public void call() {
        super.call();
        System.out.println("折叠样式手机");
    }

}
package com.young.bridge;

/**
 * @author Shaw_Young
 * @date 2020/10/12 22:14
 */
public class Client {

    public static void main(String[] args) {
        Brand xiaoMi = new XiaoMi();
        Phone phone = new FoldedPhone(xiaoMi);
        phone.open();
        phone.call();
        phone.close();
    }

}

相关文章

  • 桥接模式-手机问题

    1.手机操作问题 现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网、打电话等),如图: 2.传统方...

  • 桥接模式

    桥接模式-定义 将抽象部分和实践部分分离,使他们都可以独立地进行变化。 桥接模式-解决问题 类层级爆炸问题 桥接模...

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 结构型模式3-桥接模式

    结构型模式3-桥接模式 桥接模式bridge 意图 将抽象部分与它的实现部分分离,使它们都可以独立的变化。 问题思...

  • 结构型模式:桥接模式

    文章首发:结构型模式:桥接模式 七大结构型模式之二:桥接模式。 简介 姓名 :桥接模式 英文名 :Bridge P...

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 桥接模式

    桥接模式定义 将抽象和实现部分分离,使他们都可以独立的进行变化 桥接模式解决问题 类层级爆炸问题,降低代码复杂度 ...

  • 06-01-001 虚拟机的网络连接方式(转运整理)

    一、Bridged(桥接模式) 什么是桥接模式?桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥...

  • java设计模式07(桥接模式)

    桥接模式是一种对象结构型模式,它又被称为柄体模式或接口模式。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象...

  • 桥接模式与中介模式

    桥接模式-BRIDGE 对桥接模式感兴趣,是因为公司业务上需要桥接Html5和ReactNative两个平台。桥接...

网友评论

      本文标题:桥接模式-手机问题

      本文链接:https://www.haomeiwen.com/subject/wfappktx.html