Bridge-桥接模式

作者: oneWeekOneTopic | 来源:发表于2018-06-08 10:42 被阅读2次

    解决问题

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

    应用场景

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

    原理图

    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

    相关文章

      网友评论

        本文标题:Bridge-桥接模式

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