美文网首页
设计模式(16)之桥接模式

设计模式(16)之桥接模式

作者: zhglance | 来源:发表于2019-07-05 18:02 被阅读0次

桥接模式(Bridge Pattern)把抽象与具体实现进行解耦,主要针对一个角色有多种分类的情况,可以减少了对实例的依赖,通过桥接和抽象类建立一个关联,特别适合两个独立变化的维度之间的桥接。

一、需求举例:

一个团队的Leader,负责运行团队,团队内有初级工程师,中级工程师和高级工程师。团队的Leader向各级工程师分配任务。

二、类图:

三、代码实例:

1.工程师父接口:Engineer

package com.lance.bridge;

public interface Engineer { 

    default void develop(String program) {
        System.out.println("Engineer default refuse " + program);
    }
}

2.初级工程师类:JuniorEngineer

package com.lance.bridge;

public class JuniorEngineer implements Engineer {

    @Override
    public void develop(String program) {
        System.out.println("Junior Engineer develop " + program);

    }

}

3.中级工程师:IntermediateEngineer

package com.lance.bridge;

public class IntermediateEngineer implements Engineer {

    @Override
    public void develop(String program) {
        System.out.println("Intermediate Engineer develop " + program);
    }
}

4.高级工程师类:SeniorEngineer

package com.lance.bridge;

public class SeniorEngineer implements Engineer {

    @Override
    public void develop(String program) {
        System.out.println("Senior Engineer develop " + program);

    }
}

5.领导父类:Leader

package com.lance.bridge;

public abstract class Leader {

    protected Engineer engineer;

    public Leader(Engineer engineer) {
        this.engineer = engineer;
    }

    public abstract void run(String program);
}

6.团队领导:TeamLeader

package com.lance.bridge;

public class TeamLeader extends Leader {

    public TeamLeader(Engineer engineer) {
        super(engineer);
    }

    @Override
    public void run(String program) {
        engineer.develop(program);
    }
}

7.主类:BridgePattern

package com.lance.bridge;

public class BridgePattern {

    public static void main(String[] args) {


        System.out.println("==========start==========");

        Leader leader = new TeamLeader(new JuniorEngineer());
        leader.run("[easy program]");

        System.out.println("=======================");

        leader = new TeamLeader(new IntermediateEngineer());
        leader.run("[middle program]");

        System.out.println("=======================");

        leader = new TeamLeader(new JuniorEngineer());
        leader.run("[difficult program]");

        System.out.println("==========end==========");

    }
}

输出结果:

==========start==========
Junior Engineer develop [easy program]
=======================
Intermediate Engineer develop [middle program]
=======================
Junior Engineer develop [difficult program]
==========end==========

相关文章

  • 设计模式之桥接模式

    设计模式之桥接模式 1. 模式定义 桥接模式又称柄体模式或接口模式,它是一种结构性模式。桥接模式将抽象部分与实现部...

  • 设计模式(16)之桥接模式

    桥接模式(Bridge Pattern)把抽象与具体实现进行解耦,主要针对一个角色有多种分类的情况,可以减少了对实...

  • Java设计模式——桥接模式

    Java设计模式之桥接模式 回顾 上一期分享了适配器模式,主要为了实现解耦 桥接模式 简介 桥接模式是对象的结构模...

  • 设计模式-桥接模式

    设计模式-桥接模式 定义 桥接模式(Bridge Pattern)也称为桥梁模式、接口(Interface)模式或...

  • 桥接模式

    设计模式:桥接模式(Bridge)

  • 设计模式之桥接模式

    设计模式之桥接模式 Intro 桥接模式(Bridge),将抽象部分与它的实现部分分离,使得它们都可以独立地变化。...

  • 设计模式——桥接模式

    设计模式——桥接模式 最近公司组件分享设计模式,然而分配给我的是桥接模式。就在这里记录我对桥接模式的理解吧。 定义...

  • 设计模式之桥接模式

    桥接模式(Bridge),将抽象部分与它的实现部分分离,使它们都可以独立地变化。优先使用对象的合成/聚合将有助于你...

  • 设计模式之桥接模式

    桥接模式:将抽象部分与他实现部分分离,使它们可以独立。 UML图: 使用场景:1、如果一个系统需要在构件的抽象化角...

  • 设计模式之桥接模式

    桥接模式 人的抽象类,这类人喜欢投资 美国人的投资方式 毁天灭地的中国大妈类,所到之处寸草不生 资产接口 , 具有...

网友评论

      本文标题:设计模式(16)之桥接模式

      本文链接:https://www.haomeiwen.com/subject/ovzehctx.html