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

    桥接模式

    将抽象部分与实现部分分离,使他们可以独立的变化。

    Implementor

    package com.hml.bridge;
    
    /**
     * 实现部分
     */
    public abstract class Implementor {
    
        public abstract void operation();
    }

    ConcreateImplementorA

    package com.hml.bridge;
    
    public class ConcreateImplementorA extends Implementor {
    
        @Override
        public void operation() {
            System.out.println("A");
        }
    
    }

    ConcreateImplementorB

    package com.hml.bridge;
    
    public class ConcreateImplementorB extends Implementor {
    
        @Override
        public void operation() {
            System.out.println("B");
        }
    
    }

    Abstraction

    package com.hml.bridge;
    
    /**
     * 抽象部分
     */
    public abstract class Abstraction {
        protected Implementor implementor;
        
        public Implementor getImplementor() {
            return implementor;
        }
    
        public void setImplementor(Implementor implementor) {
            this.implementor = implementor;
        }
    
        public abstract  void operation() ;
    }

    RefinedAbstration

    package com.hml.bridge;
    
    
    public class RefinedAbstration extends Abstraction {
    
        @Override
        public void operation() {
            implementor.operation();
        }
    
    }

    Test

    package com.hml.bridge;
    
    public class Test {
        public static void main(String[] args) {
          Abstraction abs = new RefinedAbstration();
          abs.setImplementor(new ConcreateImplementorA());
          abs.operation();
          
          abs.setImplementor(new ConcreateImplementorB());
          
          abs.operation();
        }
    }

    类图

    桥接模式主要解决的问题是实现系统可能有多角度的分类,每一种分类都有可能变化,那么就把这种多角度分离出来让他们独立的变化,减少他们之间的耦合。

  • 相关阅读:
    leetcode_Basic Calculator II
    leetcode_Basic Calculator
    LeetCode_Add Two Numbers
    LeetCode_Partition List
    LeetCode_Compare Version Numbers
    LeetCode—Longest Consecutive Sequence
    Thrift数据类型
    thrift简介
    grpc与json格式互转
    grpc测试
  • 原文地址:https://www.cnblogs.com/heml/p/4652465.html
Copyright © 2011-2022 走看看