java 桥模式_Java设计模式之桥梁模式

一、桥梁模式简介

桥梁模式的作用主要是将抽象和实现分离,抽象类与接口的实现分离,抽象的实体与实体的接口特性进行分离。

二、桥梁模式的UML图

d396b703ffd22c3d325fe733f18533af.png

三、桥梁模式的代码实现

1. 抽象类:

package com.atguigu.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();

}

}

2.  接口类:

package com.atguigu.bridge;

//功能特点

public interface Brand {

void open();

void close();

void call();

}

3.  抽象的实现:

package com.atguigu.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("打电话 ");

}

}

package com.atguigu.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("打电话");

}

}

4. 接口实现:

package com.atguigu.bridge;

public class XiaoMi implements Brand {

@Override

public void open() {

// TODO Auto-generated method stub

System.out.println(" 小米开机 ");

}

@Override

public void close() {

// TODO Auto-generated method stub

System.out.println(" 小米关机 ");

}

@Override

public void call() {

// TODO Auto-generated method stub

System.out.println("小米打电话");

}

}

package com.atguigu.bridge;

public class HuaWei implements Brand {

@Override

public void open() {

// TODO Auto-generated method stub

System.out.println("华为开机");

}

@Override

public void close() {

// TODO Auto-generated method stub

System.out.println("华为关机");

}

@Override

public void call() {

// TODO Auto-generated method stub

System.out.println("华为打电话");

}

}

5. 测试类

package com.atguigu.bridge;

public class Client {

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 HuaWei());

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 HuaWei());

phone4.open();

phone4.call();

phone4.close();

}

}

6.打印结果:

小米开机

开机

小米打电话

打电话

小米关机

关机

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

华为开机

开机

华为打电话

打电话

华为关机

关机

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

小米开机

开机

小米打电话

打电话

小米关机

关机

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

华为开机

开机

华为打电话

打电话

华为关机

关机

四、桥梁模式的实际应用

在实际应用中,发消息就是一个典型的应用,可以通过桥梁模式将抽象的消息与消息的具体实现分离开来,消息有三种: 普通消息,紧急消息,特别紧急消息。 而消息的发送方式有三种: 短信、邮件、电话。

26fa7cf8da6a2228c8dc040b12edb3f0.png

标签:Java,void,桥梁,System,println,close,设计模式,public,out

来源: https://blog.csdn.net/qq_33036061/article/details/104711539

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值