23种设计模式-java

Bridge-桥接模式

2018-06-08  本文已影响2人  oneWeekOneTopic

解决问题

对象和行为自由组合。当不同的对象具有多种可枚举的行为,且不同行为的对象可被描述为不同的具体的对象,不同的行为与对象结合将产生大量具有差异性具体对象,为了防止对这些具体对象的枚举,将差异性的行为与对象本身分离出来。

应用场景

比如游戏里面的英雄的装备与动作;描述不同汽车的行为(汽、油、电等不同发动机的运行方式,见参考)。当需要定义大量(自由组合而成的)相似对象时,可以考虑一下用这种方式。

原理图

image

示例

假台国家队要训练运动员,运动项目有各种各样。这时,我们就可以将运员的运动项目和运动员本身分开,而不用定义各种样的运动员。

public interface Sport {
    public void exercise();
}
public class Run implements Sport {
    public void exercise() {
        System.out.print("run....");
    }
}
public class Jump implements Sport {
    public void exercise() {
        System.out.print("jump");
    }
}

@AllArgsConstructor
public class Athete {
    private Sport sport;

    public void train() {
        sport.exercise();
    }

    public static void main(String[] args) {
        new Athete(new Run()).train();
        new Athete(new Jump()).train();
    }
}

参考

https://blog.csdn.net/superbeck/article/details/5969884

上一篇 下一篇

猜你喜欢

热点阅读