linkin大话设计模式--桥接模式

本文介绍了一种设计模式——桥接模式。桥接模式用于解决类中有两个或更多维度的变化问题,通过将这些变化抽象分离,使得各个维度可以独立变化。文章通过一个具体的面条和辣椒风味的示例代码展示了如何实现桥接模式。

linkin大话设计模式--桥接模式


桥接模式是一种结构化模式,他主要应对的是:由于实际的需要,某个类具有2个或者2个以上维度的变化,如果只是使用继承将无法实现功能,或者会使得设计变得相当的臃肿。我们为了不一直忙于定义子类,就可以使用桥接模式。桥接模式就是把变化部分抽象出来,使变化部分与主类部分分离开来,从而将多个维度的变化彻底分离。最后提供一个管理类来组合不同维度上的变化,通过这种组合来满足业务的需要。

代码如下:
<span style="font-size:14px;">//这里继承一个抽象类   其中的维度就是不同的面条
public class PorxyNoodle1 extends AbstractNoode{
    
    public PorxyNoodle1(Peppery style) {
        super(style);
    }

    @Override
    public void eat() {
        System.out.println("这里是第1种面条..."+super.style.style());
    }

    
    public static void main(String[] args) {
        AbstractNoode noodel1 = new PorxyNoodle1(new PepperyStyle1());
        noodel1.eat();
        AbstractNoode noodel2 = new PorxyNoodle1(new PepperyStyle2());
        noodel2.eat();
        AbstractNoode noodel3 = new PorxyNoodle2(new PepperyStyle1());
        noodel3.eat();
        AbstractNoode noodel4 = new PorxyNoodle2(new PepperyStyle2());
        noodel4.eat();
    }
}

// 继承了实现了一个维度上面的变化的一个抽象类 这样子具体的另外一个维度上面的实现就是这里不同的类名里面不同的逻辑
class PorxyNoodle2 extends AbstractNoode{

    public PorxyNoodle2(Peppery style) {
        super(style);
    }

    @Override
    public void eat() {
        System.out.println("这里是第2种面条..."+super.style.style());
    }

}

//其中的一个维度上的接口(辣椒味道)  只要是这个维度里面有变化 直接修改或者添加具体的实现类就可以
interface Peppery{
    public String style();
}

class PepperyStyle1 implements Peppery{

    @Override
    public String style() {
        return "这里是辣椒风格1...";
    }
    
}

class PepperyStyle2 implements Peppery{

    @Override
    public String style() {
        return "这里是辣椒风格2...";
    }
    
}

abstract class AbstractNoode{
    //这里的这个抽象类里面这个属性其实就是一个维度   一会在new对象的时候这个属性会作为一个参数传入构造器 除了new时根据不同的类型外又实现了一个维度上的独立
    public Peppery style;

    public AbstractNoode(Peppery style) {
        this.style = style;
    }
    
    public abstract void eat();
        
}
</span>



































评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值