zoukankan      html  css  js  c++  java
  • [一天一个设计模式]-[桥接模式]

    桥接模式和适配器模式很像,桥接模式和适配器模式用于设计的不同阶段,桥接模式用于系统的初步设计,对于存在两个独立变化维度的类可以将其分为抽象化和实现化两个角色,使它们可以分别进行变化;而在初步设计完成之后,当发现系统与已有类无法协同工作时,可以采用适配器模式。但有时候在设计初期也需要考虑适配器模式,特别是那些涉及到大量第三方应用接口的情况。

    适配器模式是把一个调用者不能用的类转换成调用者可以用的类,桥接模式是在设计的时候就把两个都是有多实现的对象组合在一起。

    举个栗子,各个品牌的电脑可以用各个品牌的显示器。

    public interface Display{
        void show();
    }
    
    
    public class HPDisplay implements Display{
        @Override
        public void show(){
            sout("I'm HPDisplay.");
        }
    }
    
    public class AOCDisplay implements Display{
        @Override
        public void show(){
            sout("I'm AOCDisplay.");
        }
    }
    
    public abstract class PC{
        Display display;
        
        public setPc(Display display){
            this.display = display;
        }
        
        public abstract void run();
    
    }
    
    public LenovoPC extend PC{
        @Override
        public void run(){
            sout("I'm LenovoPC.");
            super.display.show();
        }
    }
    
    public AsusPC extend PC{
        @Override
        public void run(){
            sout("I'm AsusPC.");
            super.display.show();
        }
    }
    
    main(){
        Display hp = new HPDisplay();
        Display aoc = new AOCDisplay();
        
        //联想主机用两种显示器
        PC lenovoHp = new LenovoPC(hp);
        PC lenovoAoc = new LenovoPC(aoc);
        
    }
    
  • 相关阅读:
    使用Struts时,JSP中如何取得各个会话中的参数值?
    JUnit —— TestSuite 的使用
    如何修改 Ubuntu 的字符集?
    如何修改 VIM 制表符的空格数?
    最遥远的距离
    二分法求平方根(Python实现)
    Hadoop 学习之路之MapReduce原理
    JDK 1.8源码阅读 TreeMap
    JDK 1.8源码阅读 HashMap
    JDK 1.8源码阅读 HashSet
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026938.html
Copyright © 2011-2022 走看看