Java大数据平台开发 学习笔记(37)—— java设计模式(桥接模式)知识汇总

一、前言:

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

  1. 实现了抽象与实现的分离,从而极大的提供了系统的灵活性。
  2. 有利于分层设计,从而产生更好的结构化系统。

二、桥接模式:

2.1、UML图:

在这里插入图片描述

2.2、代码实现:

Step 1) 创建 Brand 接口、及其 Vivo、XiaoMi 实现类:

public interface Brand {
    
    
    void open();
    void close();
    void cell();
}

class Vivo implements Brand{
    
    
    @Override
    public void open() {
    
    
        System.out.println("Vivo 手机开机!");
    }

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

    @Override
    public void cell() {
    
    
        System.out.println("Vivo 手机打电话!");
    }
}

class XiaoMi implements Brand{
    
    
    @Override
    public void open() {
    
    
        System.out.println("小米手机开机!");
    }

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

    @Override
    public void cell() {
    
    
        System.out.println("小米手机打电话!");
    }
}

Step 2) 创建 Phone 抽象类、及其 FoldedPhone、UprightPhone 实现类:

public abstract class Phone {
    
    
    private Brand brand;

    public Phone(Brand brand) {
    
    
        this.brand = brand;
    }

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

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

    protected void cell(){
    
    
        this.brand.cell();
    }
}

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 cell(){
    
    
        super.cell();
        System.out.println("折叠手机打电话!");
    }
}

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 cell(){
    
    
        super.cell();
        System.out.println("直立手机打电话!");
    }
}

Step 3) 创建 main 方法:

public class Client {
    
    
    public static void main(String[] args) {
    
    
        Phone phone1 = new FoldedPhone(new XiaoMi());
        phone1.open();
        phone1.close();
        phone1.cell();
        System.out.println("============================");
        Phone phone2 = new FoldedPhone(new Vivo());
        phone2.open();
        phone2.close();
        phone2.cell();
        System.out.println("============================");
        Phone phone3 = new UprightPhone(new Vivo());
        phone3.open();
        phone3.close();
        phone3.cell();
        System.out.println("============================");
        Phone phone4 = new UprightPhone(new Vivo());
        phone4.open();
        phone4.close();
        phone4.cell();
        System.out.println("============================");
    }
}


• 由 ChiKong_Tam 写于 2020 年 10 月 18 日

猜你喜欢

转载自blog.csdn.net/qq_42209354/article/details/109144765