java23种设计模式--桥接模式

26 篇文章 0 订阅
22 篇文章 0 订阅
定义

1.将抽象部分与实现部分分离,使它们都可以独立的变化。
2.将抽象和实现放在两个不同的类层次中,使它们可以独立地变化。——《Head First 设计模式》

UML

角色
  • 抽象化角色: 抽象了类的基本功能。聚合一个实现化角色完成功能。
  • 实现化角色接口: 一个类或者接口。定义实现化接口的基本功能。
  • 具体实现化角色: 实现了实现化角色定义的功能,使得具体实现能脱离抽象部分而独立变化。
  • 修正抽象化角色: 继承或者实现了抽象化角色,改善了抽象化角色的基本功能。使得抽象部分可以独立的变化
示例
/**
 * desc : 抽象化角色
 * Created by tiantian on 2018/10/8
 */
public abstract class Abstraction {
    protected Implementor implementor;

    public Abstraction(Implementor implementor) {
        this.implementor = implementor;
    }
    
    public abstract void action(); 
    
}

/**
 * desc : 实现化角色接口
 * Created by tiantian on 2018/10/8
 */
public interface Implementor {
    void actionImpl();
}

/**
 * desc : 具体实现化角色实现
 * Created by tiantian on 2018/10/8
 */
public class ConcreteImplementorA implements Implementor {
    @Override
    public void actionImpl() {
        System.out.println("ConcreteImplementorA action");
    }
}

/**
 * desc : 具体实现化角色实现
 * Created by tiantian on 2018/10/8
 */
public class ConcreteImplementorB implements Implementor {
    @Override
    public void actionImpl() {
        System.out.println("ConcreteImplementorA action");
    }
}

/**
 * desc : 修正抽象化角色
 * Created by tiantian on 2018/10/8
 */
public class RefinedAbstraction extends Abstraction{
    public RefinedAbstraction(Implementor implementor) {
        super(implementor);
    }

    @Override
    public void action() {
        super.implementor.actionImpl();
    }
}
总结

抽象和具体是两个维度,如果两个维度都可能发生变化,那么了维护性和扩展性,桥梁模式将很适用这种情况。桥梁模式分离了抽象部分和实现部分,使得二者能独立的变化,抽象部分的扩展不会影响到具体实现,具体实现的变化也不会影响抽象部分。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值