美文网首页
设计模式-桥(Bridge)模式

设计模式-桥(Bridge)模式

作者: qyfl | 来源:发表于2019-11-12 16:21 被阅读0次

主要角色

  • 类的功能
  • 功能实现

职责

如果某一个或一种类的实现很复杂,桥模式是讲类的复杂实现的具体功能单独分离开,让代码容易理解和维护。

类图

类关系示意图

代码

public interface Account {
    Account openAccount();
    void showAccountType();
}
---
public class  DepositAccount implements Account {
    @Override
    public Account openAccount() {
        System.out.println("打开定期账号");
        return new DepositAccount();
    }

    @Override
    public void showAccountType() {
        System.out.println("这是一个定期账号");
    }
}
---
public class SavingAccount implements Account {
    @Override
    public Account openAccount() {
        System.out.println("打开活期账号");
        //...
        return new SavingAccount();
    }

    @Override
    public void showAccountType() {
        System.out.println("这是一个活期账号");
    }
}
---
public abstract class Bank {
    protected Account account;
    public Bank(Account account){
        this.account = account;
    }
    abstract Account openAccount();
}
---
public class ABCBank extends Bank {
    public ABCBank(Account account) {
        super(account);
    }

    @Override
    Account openAccount() {
        System.out.println("打开中国农业银行账号");
        account.openAccount();
        return account;
    }
}
---
public class ICBCBank extends Bank {
    public ICBCBank(Account account) {
        super(account);
    }

    @Override
    Account openAccount() {
        System.out.println("打开中国工商银行账号");
        account.openAccount();
        return account;
    }
}

使用

public class Test {
    public static void main(String[] args) {
        Bank icbcBank = new ICBCBank(new DepositAccount());
        Account icbcAccount = icbcBank.openAccount();
        icbcAccount.showAccountType();

        Bank icbcBank2 = new ICBCBank(new SavingAccount());
        Account icbcAccount2 = icbcBank2.openAccount();
        icbcAccount2.showAccountType();

        Bank abcBank = new ABCBank(new SavingAccount());
        Account abcAccount = abcBank.openAccount();
        abcAccount.showAccountType();
    }
}

技巧

  • 桥模式是将类中的复杂实现提取出来。
  • 将复杂的实现与类通过组合的方式结合起来。
  • 功能实现和类的层次可以独立发展下去。

相关文章

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式-桥接模式

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

  • 设计模式之桥接(Bridge)

    概述 桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承...

  • 桥接模式

    介绍 桥接模式(Bridge Pattern) 也称为桥梁模式,是结构型设计模式之一。桥接模式的作用就是连接 "两...

  • 设计模式-桥(Bridge)模式

    主要角色 类的功能 功能实现 职责 如果某一个或一种类的实现很复杂,桥模式是讲类的复杂实现的具体功能单独分离开,让...

  • 设计模式-桥接模式

    桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是结构型设计模式之一。顾名思义其与现实中的桥...

  • Android设计模式——桥接模式(七大结构型)

    1.桥接模式介绍 桥接模式(Bridge Pattern)也称为桥梁模式,是七大结构型设计模式之一。 2....

  • Android 桥接模式

    Android 23种设计模式 一、前言 Android桥接(Bridge)模式,又被称为桥梁模式。结构型模式之一...

  • 桥接模式

    慕课网笔记 —桥接模式(Bridge Pattern) 维基百科 桥接模式是软件设计模式中最复杂的模式之一,它把事...

  • Typescript 桥接模式

    标签: 前端 设计模式 桥接模式 typescript bridge 如果下面的代码你能轻易阅读,那么你已经熟悉桥...

网友评论

      本文标题:设计模式-桥(Bridge)模式

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