适配器模式与桥接模式(3)

简介: 适配器模式与桥接模式(3)

4、新建一个紧急程度为普通的消息类:


package com.zwx.design.pattern.bridge;
public class CommonMsg extends AbstractMessage {
    public CommonMsg(IMessage iMessage) {
        super(iMessage);
    }
    @Override
    public void sendMessage(String content, String toUser) {
        this.doSomething();
        super.sendMessage(content, toUser);
    }
    private void doSomething() {
        System.out.println("这只是一个普通消息");
    }
}


5、新建一个紧急程度为紧急的消息类:


package com.zwx.design.pattern.bridge;
public class UrgentMessage extends AbstractMessage{
    public UrgentMessage(IMessage iMessage) {
        super(iMessage);
    }
    @Override
    public void sendMessage(String content, String toUser) {
        doSomething();
        super.sendMessage(content, toUser);
    }
    private void doSomething() {
        System.out.println("这是紧急消息,请优先发送");
    }
}


这时候假如要新增其他紧急程度那直接再建一个类就好了,非常方便。

6、最后新建一个测试类来测试一下:


package com.zwx.design.pattern.bridge;
import java.io.IOException;
public class TestBridge {
    public static void main(String[] args) throws IOException {
        IMessage iMessage = new EmailMessage();
        AbstractMessage abstractMessage = new UrgentMessage(iMessage);//紧急邮件消息
        abstractMessage.sendMessage("您好","张三丰");
        //再来一个普通邮件消息
        System.out.println("------------分割线---------------");
        abstractMessage = new CommonMsg(iMessage);
        abstractMessage.sendMessage("您好","郭靖");
    }
}


输出结果如下:


这是紧急消息,请优先发送
邮件消息->张三丰:您好
------------分割线---------------
这只是一个普通消息
邮件消息->郭靖:您好


桥接模式优缺点


优点:

1、分离了抽象部分及其实现部分两个维度,实现了代码的解耦,提高了系统的扩展性。

3、扩展功能时只需要新增类,无需修改源代码,符合开闭原则。

4、通过组合而不是继承来实现耦合,符合合成复用原则。


缺点:


1、增加了系统的理解难度和设计难度(这也算是大部分设计模式的共性)


2、需要正确识别系统中各个独立变化的维度


总结


本文主要介绍桥接模式的原理,并结合了示例对其进行了分析。桥接模式也是通过组合来实现的。我们在开发中大家都知道要解耦,解耦的实质就是减少对象之间的关联,而继承是一种强关联,因为一旦通过继承,那么子类就会拥有父类所有公开的方法和属性,有些可能并不是子类需要的,而组合就不一样,组合是一种弱关联,我只是持有一个对象,但是我持有对象所拥有的功能并不是我的,和我并没有很强烈的关系。所以实质上在很多场景我们都可以通过组合来解耦继承对象之间的强关联关系。


最后还是希望大家记住编程中的一条原则,那就是:多用组合,少用继承。


目录
相关文章
|
7月前
桥接模式
桥接模式
37 0
|
2月前
|
设计模式 缓存 C#
适配器模式与桥接模式:一分钟浅谈
【10月更文挑战第14天】本文介绍了面向对象设计中的适配器模式和桥接模式,包括它们的概念、应用场景、实现方式及常见问题。适配器模式通过接口转换解决不兼容问题,适用于系统扩展和遗留系统升级;桥接模式通过分离抽象和实现提高灵活性,适用于多维度变化和避免类爆炸。文中还提供了C#代码示例以加深理解。
42 3
|
4月前
|
Windows
|
6月前
结构型模式之桥接模式
结构型模式之桥接模式
结构型模式之桥接模式
|
7月前
|
API 数据库
结构型 桥接模式
结构型 桥接模式
46 0
|
7月前
|
设计模式
【适配器模式】—— 每天一点小知识
【适配器模式】—— 每天一点小知识
|
设计模式 C++
2023-6-16-第七式桥接模式
2023-6-16-第七式桥接模式
82 1
|
设计模式 前端开发
关于适配器模式我所知道的
关于适配器模式我所知道的
48 0
|
Linux Windows
结构型模式-桥接模式
结构型模式-桥接模式
115 0
|
设计模式
我学会了,桥接模式
桥接模式属于结构型模式,这个类型的设计模式总结出了 类、对象组合后的经典结构,将类、对象的结构和使用解耦了,花式的去借用对象。
121 0
我学会了,桥接模式