设计模式课时五 ------桥接模式

桥接模式

什么是桥接模式:
非桥接模式:一幅画需要12种颜色,和粗,细,中三个型号,共计36支蜡笔(3*12=36个实体类)
桥接模式:一幅画需要12种颜色,和粗,细,中三个型号,共计3支毛笔,12中色料(3+12=15个实体类)
代码示例:

class Color
{
    public String color;
}
class Red extends Color
{
    public Red(){
        this.color = "red";
    }
}
class Blue extends Color
{
    public Blue(){
        this.color = "blue";
    }
}
interface Brush
{
    public abstract void Paint(Color c);
}
class BigBrush implements Brush
{
    @Override
    public void Paint(Color c)
    {
        System.out.println("Using big brush and color  painting:"+c.color);
    }
}
class smallBrush implements Brush
{
    @Override
    public void Paint(Color c) {
        System.out.println("Useing small brush and color  painting:"+c.color);
    }
}
public class Demo
{
    public static void main(String[] args)
    {
        Brush brush = new BigBrush();
        brush.Paint(new Red());
        brush.Paint(new Blue());
        brush = new smallBrush();
        brush.Paint(new Blue());
        brush.Paint(new Red());
    }
}

适配器 和 桥接模式的比较

适配器桥接模式
1已有两个接口,让其相容分离抽象化和实现,使两者的接口不同。目的是分离
2已有两个模块,让他们同时工作先有桥,再有两端,想让其(毛笔,色料)分开实现,笔管粗细,色料管颜色。

适用情况:
1.一个构件有多于一个的抽象化角色和实现化角色,系统需要他们之间进行动态耦合,虽然在系统中使用继承是没有问题的,但是由于抽象化角色和具体化角色需要独立变化,设计需求需要独立管理这两者。
2.如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的联系。
3.设计要求实现化角色的任何改变不应当影响客户端,或者说实现化角色的改变对客户端是完全透明的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值