zoukankan      html  css  js  c++  java
  • 简易的设计模式——桥梁模式

    定义

    将抽象和实现解耦,使得两者可以独立地变化。

    桥梁模式

    4个角色

    在抽象模式中有4个不同的角色。

    1. 抽象化角色 Abstracttion
    2. 实现化角色 Implementator
    3. 修正抽象化 RefinedAbstraction
    4. 具体实现化角色 ConcreteImplementator

    抽象角色引用实现化角色

    代码实现

    Abstracttion.java

    public abstract class Abstracttion {
    
        private Implementator implementator;
    
        public Abstracttion(Implementator implementator ){
            this.implementator = implementator;
        }
    
        public void request(){
            this.implementator.doSomething();
        }
    
        public Implementator getImp(){
            return this.implementator;
        }
    
    }
    
    

    RefinedAbstraction.java

    public class RefinedAbstraction extends Abstracttion {
    
        public RefinedAbstraction(Implementator implementator) {
            super(implementator);
        }
    
        @Override
        public void request() {
            super.request();
            super.getImp().doAnything();
        }
    }
    
    
    

    Implementator.java

    public interface Implementator {
        //basic method
        public void doSomething();
        public void doAnything();
    }
    
    

    ConcreteImplementator1.java

    public class ConcreteImplementator1 implements Implementator {
        @Override
        public void doSomething() {
            //实现业务
        }
    
        @Override
        public void doAnything() {
            //实现业务
        }
    }
    
    

    ConcreteImplementator2.java

    public class ConcreteImplementator2 implements Implementator{
        @Override
        public void doSomething() {
            //实现业务
        }
    
        @Override
        public void doAnything() {
            //实现业务
        }
    }
    
    

    桥梁模式的优点

    • 抽象和实现分离:

      实现可以不受抽象的约束,不用被绑定在一个固定的抽象层次上面。

    • 优秀的扩展能力:

      想要增加也没有问题

    • 实现细节对客户透明:

      客户不用关心细节实现,它已经由抽象层通过聚合关系完成了封装。

  • 相关阅读:
    千峰公开课徐老师讲解前端前沿技术总结
    网站被k到可以使用关键词搜索到首页优化总结
    SEO基础内容
    react项目后台及上线步骤
    超好用的图片压缩工具,推荐给你
    属性title样式自定义
    Vue.js_devtools_5.1.0.zip【需要的可自行下载】
    js异步执行 按需加载 三种方式
    Web安全之跨站脚本攻击(XSS)
    操作数组不要只会for循环
  • 原文地址:https://www.cnblogs.com/whthomas/p/4420891.html
Copyright © 2011-2022 走看看