• 设计模式(第十式:桥梁模式)


    概念:

      桥梁模式:将抽象解藕,使得这两个能独立的变化。桥梁模式也叫桥接模式。

    实现:

      定义材质

        public interface Material {
            /**
             * 获取纸张
             * @return 纸张类型
             */
            String getSheet();
        }

      材质的两种实现

        public class A4 implements Material {
            @Override
            public String getSheet() {
                return "A4";
            }
        }
        public class A8 implements Material {
            @Override
            public String getSheet() {
                return "A8";
            }
        }

      定义抽象类型的书

        public abstract class AbstractBook {
            Material material;
    
            public AbstractBook(Material material){
                this.material = material;
            }
    
            public abstract void materialInfo();
        }

      抽象书的两种实现

        public class NovelBook extends AbstractBook {
            public NovelBook(Material material) {
                super(material);
            }
    
            @Override
            public void materialInfo() {
                System.out.println("小说都用"+material.getSheet()+"来制作。");
            }
        }
        public class ToolBook extends AbstractBook {
            public ToolBook(Material material) {
                super(material);
            }
    
            @Override
            public void materialInfo() {
                System.out.println("工具书都是"+material.getSheet()+"制作的");
            }
        }

    测试与结果

      测试

        @Test
        public void bridgeTest(){
            Material material = new A4();
            AbstractBook novelBook =new NovelBook(material);
            novelBook.materialInfo();
    
            AbstractBook toolBook =new ToolBook(material);
            toolBook.materialInfo();
    
            material = new A8();
            toolBook  = new ToolBook(material);
            toolBook.materialInfo();
    
        }

      结果
        小说都用A4来制作。
        工具书都是A4制作的
        工具书都是A8制作的

    分析:

      1.看着代码应该就很好理解,有没有一种感觉,抽象类是此岸,接口是彼岸。其实这个模式本来不常用到,有一种感觉就是给芭比娃娃换衣服,这就能有很多种搭配。但正常的逻辑一般都不需要反复来回搭配,都是一种固有的模式了。但有些还特定的场景还是能用到的。

      2.可以看得出来,桥接模式有很强的可扩展性。

      3.适用场景:
        a.如果继承层级过多,可以使用这种模式打破继续继承的模式。
        ...

       (这个平时不常用,所以就...)

  • 相关阅读:
    Instant Python 中文缩减版
    《Java疯狂讲义》(第3版)学习笔记 2
    《Java疯狂讲义》(第3版)学习笔记 1
    NXP Mifare S50标准IC卡- 访问位(Access Bits) 分析
    Python中获取异常(Exception)信息
    支持向量机(SVM)入门
    棋类游戏中人机博弈的设计
    (翻译)如何对python dict 类型按键(keys)或值(values)排序
    Python实现打印二叉树某一层的所有节点
    FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请
  • 原文地址:https://www.cnblogs.com/ben-mario/p/10782639.html
Copyright © 2020-2023  润新知