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

    桥梁模式的优点

    • 抽象和实现分离:

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

    • 优秀的扩展能力:

      想要增加也没有问题

    • 实现细节对客户透明:

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

  • 相关阅读:
    leetcode: power of three 三种解法
    继续写java和socket
    node中的事件发射器
    谈一谈Crsf和XSS攻击
    谈一谈那些框架们
    【Mysql数据库】学习笔记
    【数据库】DML-增删改查-SQL实现
    【Jsp,Servlet初学总结】 含 cookie和session的使用
    struct和typedef struct彻底明白了
    Android 学习之路
  • 原文地址:https://www.cnblogs.com/whthomas/p/4420891.html
Copyright © 2011-2022 走看看