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);
        
    }
    
  • 相关阅读:
    无法往u盘里边复制超过4G的单个文件解决方法
    vue 自定义属性判断点击每个item 显示隐藏
    前端小组分享会之异步回调函数中的上下文
    git 的一些命令
    ES学习之promise
    mac找到占用端口号的进程ID
    meta link
    webpack学习笔记--安装
    css样式之 direction
    日常积累之JSON.stringify和JSON.parse substr
  • 原文地址:https://www.cnblogs.com/A-yes/p/12026938.html
Copyright © 2011-2022 走看看