• 桥接模式


    1. 定义

    桥接模式将抽象部分与它的实现部分分离,使它们都可以独立的变化。

    2. 类图

    3. Example

    假如你是个小有所成的成功人士,开了家公司,生产什么商品全靠追风,哪个赚钱生产哪个,请写出商品生产、销售的过程,要求商品变化时,代码尽可能少变化。

    package com.gitlearning.hanldegit.patterns.cor.bridge;
    
    public abstract class Corp {
        Product product;
    
        public Corp(Product product) {
            this.product = product;
        }
    
        abstract void makeMoney();
    }
    
    class FakeCorp extends Corp {
    
        public FakeCorp(Product product) {
            super(product);
        }
    
        @Override
        void makeMoney() {
            product.beProduced();
            product.beSelled();
        }
    }
    
    interface Product {
        void beProduced();
        void beSelled();
    }
    
    class IPod implements Product {
    
        @Override
        public void beProduced() {
            System.err.println("produce : ipod" );
        }
    
        @Override
        public void beSelled() {
            System.err.println("sell: ipod");
        }
    }
    
    class Toy implements Product {
    
        @Override
        public void beProduced() {
            System.err.println("produce : toy" );
        }
    
        @Override
        public void beSelled() {
            System.err.println("sell : toy" );
        }
    }
    
    
    class Test {
        public static void main(String[] args) {
            FakeCorp fakeCorp = new FakeCorp(new IPod());
            fakeCorp.makeMoney();
    
            fakeCorp = new FakeCorp(new Toy());
            fakeCorp.makeMoney();
        }
    }
    

    输出如下:

    produce : ipod
    sell: ipod
    produce : toy
    sell : toy
    
    

    个人理解:

    桥接模式好像是这样的:商品可以被生产和销售,这进行了一次抽象;而公司依赖于不同的产品,则对应于类图左侧的抽象。公司赚取具体是依靠产品的,因此产品可当做右侧的implentor。

    4. 使用

    1. 不希望或不适用使用继承的场景
    2. 接口或抽象类不稳定的场景
    3. 重用性要求较高的场景

    5.其他

    优点:

    1. 抽象和实现分离
    2. 优秀的扩充能力
    当你准备好了,机会来临的时候,你才能抓住
  • 相关阅读:
    JVM调优2
    CAP理论/AP架构/CP架构
    JDK8 JVM性能优化-1
    string+和stringbuffer的速度比较
    @SpringBootApplication注解分析
    Spring Cloud底层原理
    Window 下安装 redis
    Spring的任务调度@Scheduled注解——task:scheduler和task:executor的解析
    多线程捕获线程中的异常
    将 HTML 页面内容转换为图片或PDF文件
  • 原文地址:https://www.cnblogs.com/studentytj/p/12404895.html
Copyright © 2020-2023  润新知