zoukankan      html  css  js  c++  java
  • Java 实现桥接(Bridge)模式

    类图:


    /**
     * 手机壳、套
     * @author stone
     *
     */
    public abstract class BaseCellphoneShell {
    	public abstract void mapping();//相应匹配哪种手机
    }
    /**
     * 手机,桥接了 手机壳BaseCellphoneShell
     * @author stone
     */
    public abstract class BaseCellphone {
    	
    	private BaseCellphoneShell shell;
    
    	public void setShell(BaseCellphoneShell shell) {
    		this.shell = shell;
    	}
    
    	public BaseCellphoneShell getShell() {
    		return shell;
    	}
    
    	public abstract void mapping();//相应哪种壳
    
    }

    /**
     * 手机的实现
     * @author stone
     *
     */
    public class Cellphone extends BaseCellphone {
    
    	@Override
    	public void mapping() {
    		System.out.println("本手机相应的壳是:");
    		getShell().mapping();
    	}
    
    }

    /**
     * 手机壳的实现
     * @author stone
     *
     */
    public class CellphoneShell extends BaseCellphoneShell {
    
    	@Override
    	public void mapping() {
    		System.out.println("壳----iphone6");
    	}
    
    }

    /*
     * 桥接(Bridge)模式, 是结构型模式
     * 
     * 将抽象化与实现化脱耦,使得二者能够独立的变化,也就是说将他们之间的强关联变成弱关联,
     * 也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者能够独立的变化。

    */ public class Test { public static void main(String[] args) { /* * 在本例中:手机和手机壳之间有强关联的关系:要么手机相应一种壳(BaseCellphoneShell)。要么壳相应一种手机(BaseCellphone) * 手机能够有多维度变化。如根据品牌划分的、根据尺寸划分的、根据个性需求划分的等 * 手机壳也有多维度变化,由于它要适配上面划分出来的手机 * 将桥作在了BaseCellphone中,聚合接入了BaseCellphoneShell */ BaseCellphone cellphone = new Cellphone(); cellphone.setShell(new CellphoneShell());//聚合接入 cellphone.mapping(); } }



  • 相关阅读:
    oracle 10g安裝後無法通過http://127.0.0.1:5500/em管理數據庫的問題解決
    Debian系统的安装
    delphi下使用http協議post方式發送xml數據到asp頁面和aspx頁面
    android 应用界面布局
    【转】正则表达式最小化匹配
    android 数据存储操作之 SharedPreferences
    IL程序基本结构
    字符串连接导致sql查询缓慢
    如何不用服务器控件提交数据
    android之 Activity与intent的应用【转载】
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6817560.html
Copyright © 2011-2022 走看看