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() {
            //实现业务
        }
    }
    
    

    桥梁模式的优点

    • 抽象和实现分离:

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

    • 优秀的扩展能力:

      想要增加也没有问题

    • 实现细节对客户透明:

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

  • 相关阅读:
    Leecode刷题之旅-C语言/python-383赎金信
    Leecode刷题之旅-C语言/python-349两整数之和
    Cesium 实现粒子效果贴地(伪)
    CesiumJS 添加会动的GIF
    sleep 和 wait 区别
    Git常用命令
    java 泛型
    java 设计模式 ---- 单例模式
    java 设计模式 ---- 工场模式
    java 线程池 ---- newCachedThreadPool()
  • 原文地址:https://www.cnblogs.com/whthomas/p/4420891.html
Copyright © 2011-2022 走看看