zoukankan      html  css  js  c++  java
  • 设计模式第10篇:桥接模式

    一.桥接模式要解决的问题

     桥接模式的作用将接口与实现分离。

    二.桥接设计模式用例(Java)

     假设有一个接口继承层次图如下:

     

    将其改为桥接模式类图如下:

     

    其中Shape和Color接口使用组合关系,附Java代码如下:

    interface Color {
    
        void applyColor();
    }
    abstract class Shape {
        //Composition - implementor
        protected Color color;
        
        //constructor with implementor as input argument
        public Shape(Color c){
            this.color=c;
        }
        
        abstract public void applyColor();
    }
    class Triangle extends Shape{
    
        public Triangle(Color c) {
            super(c);
        }
    
        @Override
        public void applyColor() {
            System.out.print("Triangle filled with color ");
            color.applyColor();
        } 
    
    }
    class Pentagon extends Shape{
    
        public Pentagon(Color c) {
            super(c);
        }
    
        @Override
        public void applyColor() {
            System.out.print("Pentagon filled with color ");
            color.applyColor();
        } 
    
    }
    
    class RedColor implements Color{
    
        public void applyColor(){
            System.out.println("red.");
        }
    }
    class GreenColor implements Color{
    
        public void applyColor(){
            System.out.println("green.");
        }
    }
    public class BridgePatternTest {
    
    	public static void main(String[] args) {
    		Shape tri = new Triangle(new RedColor());
    		tri.applyColor();
    		
    		Shape pent = new Pentagon(new GreenColor());
    		pent.applyColor();
    	}
    
    }
     

    三.桥接设计模式使用场景

      当抽象接口和实现类之间有独立的继承(或实现)层次并且要求对客户端隐藏具体实现细节时优先考虑桥接设计模式。

  • 相关阅读:
    55、分页查询employees表,每5行一页,返回第2页的数据
    54、查找排除当前最大、最小salary之后的员工的平均工资avg_salary
    53、按照分组拼接字段
    52、获取Employees中的first_name
    51、查找字符串'10,A,B' 中逗号','出现的次数cnt
    图片素材
    软件下载
    一款高效卸载软件
    《单独.17 人的困境》(摘抄)
    Markdown的简单使用
  • 原文地址:https://www.cnblogs.com/quxiangxiangtiange/p/10250001.html
Copyright © 2011-2022 走看看