桥接模式

模式动机:
设想如果要绘制矩形、圆形、椭圆、正方形,我们至少
需要4个形状类,但是如果绘制的图形需要具有不同的
颜色,如红色、绿色、蓝色等,此时至少有如下两种设
计方案:
• 第一种设计方案是为每一种形状都提供一套各种颜色的版本。
• 第二种设计方案是根据实际需要对形状和颜色进行组合。
在这里插入图片描述设计方案二即是桥接模式的应用。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编量。它是一种对象型结构模式。
我所理解的所谓的桥接模式就是把复杂的具体对象拆分成不同的维度,例如例子中的图形,就把它拆分成形状和颜色两个维度。

此刻不禁想到了建造者模式。

实战演练

模拟毛笔
• 现需要提供大中小3种型号的画笔,能够绘制5种不
同颜色,如果使用蜡笔,我们需要准备3*5=15支
蜡笔,也就是说必须准备15个具体的蜡笔类。而如
果使用毛笔的话,只需要3种型号的毛笔,外加5个
颜料盒,用3+5=8个类就可以实现15支蜡笔的功能。
本实例使用桥接模式来模拟毛笔的使用过程。

public interface Color
{
	void bepaint(String penType,String name);
}
public abstract class Pen
{
	protected Color color;
	public void setColor(Color color)
	{
		this.color=color;
	}
	public abstract void draw(String name);
} 
public class Black implements Color
{
	public void bepaint(String penType,String name)
	{
		System.out.println(penType + "黑色的"+ name + ".");
	}
}
public class BigPen extends Pen
{
	public void draw(String name)
	{
		String penType="大号毛笔绘制";
		this.color.bepaint(penType,name);			
	}	
}

学完桥接模式忽然有点蒙,感觉和适配器模式挺像的,于是乎找了一篇解析觉得写得不错
桥接模式和适配器的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值