【设计模式】(十五)--结构型模式--桥接模式

【设计模式】(十四)–结构型模式–桥接模式

桥接模式定义

Decouple an abstraction from its implementation so that the two can vary independently.

意思是将抽象和实现解耦,是的两者可以独立的变化。
这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。
桥接模式有以下4个元素

  • Abstraction 抽象类
  • Implementation 抽象的实现类
  • Refined 扩充的抽象类
  • SpecificImplementation 具体实现类

桥接模式的优点

  • 1、抽象和实现的分离。
  • 2、优秀的扩展能力。
  • 3、实现细节对客户透明。

桥接模式的使用场景

  • 1、如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承联系,通过桥接模式可以使它们在抽象层建立一个关联关系。
  • 2、对于那些不希望使用继承或因为多层次继承导致系统类的个数急剧增加的系统,桥接模式尤为适用。
  • 3、一个类存在两个独立变化的维度,且这两个维度都需要进行扩展。

桥接模式的简单实现

类图
在这里插入图片描述

实现

public class SanShaoCarFactory extends AbstractCarFactory {
   public SanShaoCarFactory(Color color) {
       super(color);
   }

   @Override
   public void makeCar() {
       System.out.println("三少汽车厂开始造车");
       System.out.println("制造了一台:" + color.getColor() + "的车");
   }

   public static void main(String[] args) {
       Black black = new Black();
       AbstractCarFactory sanShaoCarFactory = new SanShaoCarFactory(black);
       sanShaoCarFactory.makeCar();
   }
}
public abstract class AbstractCarFactory {
   Color color;

   public AbstractCarFactory(Color color) {
       this.color = color;
   }

   public Color getColor() {
       return color;
   }

   public abstract void makeCar();
}
public interface Color {
   String getColor();
}
public class Black implements Color {
   @Override
   public String getColor() {
       return "黑色";
   }
}

结果
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值