0
点赞
收藏
分享

微信扫一扫

力扣题库刷题笔记406-根据身高重建队列

烟中雯城 2023-04-24 阅读 41

文章目录


前言

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


一、桥接模式(Bridge)-基本介绍

在这里插入图片描述
在这里插入图片描述

完整代码

Brand 手机接口,定义行为

package tanchishell.SJMS.bridge;

//接口定义手机的行为
public interface Brand {
    void open();
    void close();
    void call();
}

Vivo 实现 Brand 接口

package tanchishell.SJMS.bridge;

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手机打电话");
    }
}

XiaoMi 实现 Brand 接口

package tanchishell.SJMS.bridge;

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("小米手机打电话");
    }
}

Phone 抽象桥接类

package tanchishell.SJMS.bridge;

//抽象建立桥接
public abstract class Phone {
    //组合品牌
    private Brand brand;
    //构造器 抽象建立桥接
    public Phone(Brand brand) {
        super();
        this.brand = brand;
    }
    protected void open() {
        this.brand.open();
    }
    protected void close() {
        brand.close();
    }
    protected void call() {
        brand.call();
    }

}

FoldedPhone 实现桥接 (折叠样式手机)


``package tanchishell.SJMS.bridge;

//折叠样式手机 实现桥接
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(" 折叠样式手机 ");
    }
}

UpRightPhone 实现桥接(直立样式手机)

package tanchishell.SJMS.bridge;

//直立式手机 实现桥接
public class UpRightPhone extends Phone{

    //构造器
    public UpRightPhone(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(" 直立样式手机 ");
    }
}

Clint 测试桥接模式

package tanchishell.SJMS.bridge;

public class Clint {
    public static void main(String[] args) {
        //获取折叠式手机 (样式 + 品牌 )
        Phone phone1 = new FoldedPhone(new XiaoMi());
        phone1.open();
        phone1.call();
        phone1.close();
        System.out.println("=======================");
        Phone phone2 = new FoldedPhone(new Vivo());
        phone2.open();
        phone2.call();
        phone2.close();
        System.out.println("==============");
        UpRightPhone phone3 = new UpRightPhone(new XiaoMi());
        phone3.open();
        phone3.call();
        phone3.close();
        System.out.println("==============");
        UpRightPhone phone4 = new UpRightPhone(new Vivo());
        phone4.open();
        phone4.call();
        phone4.close();


    }
}

输出

小米手机开机
 折叠样式手机 
小米手机打电话
 折叠样式手机 
小米手机关机
 折叠样式手机 
=======================
vivo手机开机
 折叠样式手机 
vivo手机打电话
 折叠样式手机 
vivo手机关机
 折叠样式手机 
==============
小米手机开机
 直立样式手机 
小米手机打电话
 直立样式手机 
小米手机关机
 直立样式手机 
==============
vivo手机开机
 直立样式手机 
vivo手机打电话
 直立样式手机 
vivo手机关机
 直立样式手机 

===========================================================

FlipPhone 新增实现桥接(翻盖样式手机)

package tanchishell.SJMS.bridge;

public class FlipPhone extends Phone{
    //构造函数
    public FlipPhone(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(" 翻盖样式手机 ");
    }
}

测试类测试

在这里插入图片描述
在这里插入图片描述

===========================================================

二、桥接模式在JDBC的源码剖析

在这里插入图片描述
在这里插入图片描述

三、桥接模式的注意事项和细节

在这里插入图片描述

四、桥接模式其它应用场景

在这里插入图片描述

举报

相关推荐

0 条评论