• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

关于java:Java中的桥接模式

java 搞代码 3年前 (2022-01-27) 30次浏览 已收录 0个评论

桥接模式简介

  • 桥接是用于把抽象化与实现化解耦,使得二者能够独立变动。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接构造,来实现二者的解耦。
  • 这种模式波及到一个作为桥接的接口,使得实体类的性能独立于接口实现类。这两种类型的类可被结构化扭转而互不影响。
品牌接口Brand
//产品品牌
public interface Brand {
    void name();
}
实现类品牌A和品牌B
//A品牌
public class ABrand implements Brand {
    @Override
    public void name() {
        System.out.print("A品牌");
    }
}

//B品牌
public class BBrand implements Brand {
    @Override
    public void name() {
        System.out.print("B品牌");
    }
}
形象产品类Product
//形象产品类
public abstract class Product {
    //带品牌,组合形式
    private Brand brand;

    public Product(Brand brand) {
        this.brand = brand;
    }

    public void name() {
        brand.name();//品牌名称
    }
}
子类产品C和D
//C产品
public class CProduct extends Product {
    public CProduct(Brand brand) {
        super(brand);
    }

    @Override
    public void name() {
        super.name();
        System.out.println("C产品");
    }
}

//D产品
public class DProduct extends Product {
    public DProduct(Brand brand) {
        super(brand);
    }

    @Override
    public void name() {
        super.name();
        System.out.println("D产品");
    }
}
测试类
public class Test {
    public static void main(String[] args) {
        Brand brandA = new ABrand();//A品牌
        Brand brandB = new BBrand();//B品牌
        CProduct cProduct = new CProduct(brandA);//C产品,带A品牌,即A品牌的C产品
        DProduct dProduct = new DProduct(brandB);//D产品,带B品牌,即B品牌的D产品
        cProduct.name();
        dProduct.name();
        /**
         * 输入后果:
         * A品牌C产品
         * B品牌D产品
         */
    }
}
测试后果
A品牌C产品
B品牌D产品

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:关于java:Java中的桥接模式
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址