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

    桥梁模式的优点

    • 抽象和实现分离:

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

    • 优秀的扩展能力:

      想要增加也没有问题

    • 实现细节对客户透明:

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

  • 相关阅读:
    C语言程序设计 第二章 数据类型
    C语言程序设计 认识函数
    趣味c语言编程100例(三)
    如何使用 Eset Nod32通行证批量获取精灵
    C语言程序设计 使用库函数参考手册
    C语言程序设计 概述
    C语言程序设计 VC6调试程序(视频)
    趣味c语言编程100例(四)
    java WebService 异常
    数据库战略高度解析(2) 数据库驱动程序
  • 原文地址:https://www.cnblogs.com/whthomas/p/4420891.html
Copyright © 2011-2022 走看看