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);
        
    }
    
  • 相关阅读:
    五分钟搞懂Vuex
    vue 背景图片 backgroundImage background-image vue的style方式绑定行内样式-background-image的方式等~
    VUE2.0 vue-cli构建项目中使用Less
    ES6如何引入图片
    Vue+Gojs实现流程图demo
    vue自定义指令要点
    vue cli中token验证
    linux服务器上配置多个svn仓库
    vue-cli(vue脚手架)超详细教程
    node学习第一天:nvm使用
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026938.html
Copyright © 2011-2022 走看看