zoukankan      html  css  js  c++  java
  • 设计模式-桥接模式

    有点难理解,主要有4个角色 抽象调用 具体调用  抽象实现 具体实现。大概的意思就是抽象调用调用抽象实现。由具体调用和具体实现来拓展功能

    抽象实现

    public interface Implemter {
        void implemt();
    }

    具体实现

    public class ImplemterImpl implements Implemter {
        @Override
        public void implemt() {
            System.out.println("具体实现的操作");
        }
    }

    抽象调用

    abstract class AbstractRequester {
        protected Implemter imp;
    
        public AbstractRequester(Implemter implemter) {
            this.imp = implemter;
        }
        public abstract void request();
    }

    具体调用

    public class AbstractRequestImpl extends AbstractRequester {
        public AbstractRequestImpl(Implemter imp) {
            super(imp);
        }
    
        @Override
        public void request() {
        imp.implemt();
        }
    }

    测试类

    public class Client {
        public static void main(String[] args) {
            ImplemterImpl implemter = new ImplemterImpl();
            AbstractRequestImpl abstractRequest = new AbstractRequestImpl(implemter);
            abstractRequest.request();
    
        }
    }

    总结:在桥接模式里,调用类关联实现类对象,抽象调用和抽象实现抽象出方法,由具体调用调用具体实现来实现拓展,哪怕以后功能进行拓展也无需更改抽象类,只需继承/实现来重写超类中的方法。

    应用场景:当一个类里有两个独立拓展时,或者不希望因为多层次继承来增加项目的复杂度时,可以使用桥接者模式,调用类和实现类各有一个超类,重写方法即可完成修改。

    不和别人一样,不复制只真正理解
  • 相关阅读:
    android发送/接收json数据
    Android 图文数据JSON解析
    Android中View绘制流程以及invalidate()等相关方法分析
    Android WebView常见问题及解决方案汇总
    非递归方法的堆排序实现
    快速排序算法
    从导数谈起
    Linux网络编程8——对TCP与UDP的简易封装
    Linux网络编程7——使用TCP实现双方聊天
    Linux网络编程6——使用TCP实现文件服务器
  • 原文地址:https://www.cnblogs.com/Vinlen/p/12785379.html
Copyright © 2011-2022 走看看