栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

桥接模式(java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

桥接模式(java)

桥接模式

定义:将抽象部分与它的实现部分分离,是它们可以独立变化。

怎么理解呢?举个例子,不同的手机品牌商可能会有不同的软件的实现,比如安卓手机和果子手机的软件就有不同。那么我们可以有两种角度划分架构

但是我们如果想要增加一个品牌和一个软件需要增加大量类去实现。实现系统有多角度的,每种角度的分类的都可能变化,那么我们可以把这些角度分离出来,让它们独立变化,减少它们之间的耦合。上面的例子可以演化成

如此,增加一个品牌或者增加一个软件都只需要增加一个类。

由此,介绍设计模式的一个原则,合成/聚合复用原则——尽量使用合成/聚合,尽量不适用类继承

那么合成和聚合是什么呢?合成是一种强拥有的关系,体现严格的部分与整体的关系,部分和整体的生命周期一样,就像人和他的四肢。聚合的一种弱拥有的关系,体现的是A对象可以拥有B对象,但B对象不是A对象的一部分,如同程序员可能有你,但你未必是程序员的一部分。

桥接模式是抽象与实现相分离,抽象含有实现,实现未必是抽象的一部分,抽象使用的实现可以是多种是实现。这里的实现并非是实现类意义上的实现,而是一种“工具”上实现。下面是代码

public class Abstraction {

    protected Implementor implementor;

    public void setImplementor(Implementor implementor){
        this.implementor = implementor;
    }

    public  void operation(){
        implementor.operation();
    }

}

public class RefinedAbstraction1 extends Abstraction{
    @Override
    public void operation() {
        implementor.operation();
    }
}

public class RefinedAbstraction2 extends Abstraction{
    @Override
    public void operation() {
        implementor.operation();
    }
}

public abstract class Implementor {

    public abstract void operation();
}


public class DemoImplementor1 extends Implementor {

    @Override
    public void operation() {
        System.out.println("具体的操作一");
    }
}

public class DemoImplementor2 extends Implementor {
    @Override
    public void operation() {
        System.out.println("具体的操作二");
    }
}
public class Client {
    public static void main(String[] args) {

        System.out.println("抽象类一:");
        Abstraction rab1 = new RefinedAbstraction1();

        rab1.setImplementor(new DemoImplementor1());
        rab1.operation();

        System.out.println("抽象类二");
        Abstraction rab2 = new RefinedAbstraction2();

        rab2.setImplementor(new DemoImplementor2());
        rab2.operation();

        rab2.setImplementor(new DemoImplementor1());
        rab2.operation();

    }
}



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781929.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号