JAVA设计模式之桥接模式(bridge)

2020-04-28 16:01:55来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

JAVA设计模式之桥接模式(bridge)

桥接模式:

   分离抽象与具体实现,让他们可以独自发展,防止类爆炸

 场景:

   过年走亲戚是我们中国人传统的习俗,走亲戚那就少不了要买东西(苹果,牛奶等等),这些具体的东西就是具体的类

   蒙牛牛奶,有机苹果,有机,蒙牛这些就是抽象,东西各种各样,随着制造业以及人类的智慧这些抽象也在不断发展

   将这些抽象与具体的类通过一个桥梁连接起来就是桥接模式。

问题:我走丈母娘家想送一些有机苹果,该怎么实现呢,请看代码

1、抽象东西类
package com.srr.pd.bridge;

/**
 * 东西,抽象类
 */
abstract public class Thing {
    Bridge bridge;
}

2、蒙牛

package com.srr.pd.bridge;

/**
 * 蒙牛
 */
public class Mengniu extends Thing{
    public Mengniu(Bridge bridge){
        this.bridge = bridge;
    }

    @Override
    public String toString() {
        return "Mengniu{} " + this.bridge.toString();
    }
}

3、有机

package com.srr.pd.bridge;

/**
 * 有机的
 */
public class Organic extends Thing{
    public Organic(Bridge bridge){
        this.bridge = bridge;
    }

    @Override
    public String toString() {
        return "Organic{} " + this.bridge.toString();
    }
}

4、桥接类

package com.srr.pd.bridge;

/**
 * 桥接
 */
public class Bridge {
    @Override
    public String toString() {
        return "Bridge{}";
    }
}

5、苹果

package com.srr.pd.bridge;

/**
 * 苹果
 */
public class Apple extends Bridge{
    @Override
    public String toString() {
        return "Apple{}";
    }
}

6、牛奶

package com.srr.pd.bridge;

/**
 * 牛奶
 */
public class Milk extends Bridge{
    @Override
    public String toString() {
        return "Milk{}";
    }
}

7、测试类

package com.srr.pd.bridge;

public class T {

    /**
     * 走亲戚
     */
    private static void WalkRelatives(){
        Thing thing = new Organic(new Apple()); //有机苹果
//给东西 give(
new MotherOfWife(),thing); } /** * 给东西 * @param m * @param thing */ private static void give(MotherOfWife m, Thing thing) { m.get(thing); } static class MotherOfWife { /** * 收到 */ public void get(Thing thing){ System.out.println(thing.toString() +" geted"); } } public static void main(String[] args) { WalkRelatives(); } }

原文链接:https://www.cnblogs.com/sx-bj-srr/p/bridge.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:文件上传——Spring MVC方式

下一篇:Java的外部类为什么不能使用private、protected进行修饰