zoukankan      html  css  js  c++  java
  • 适配器模式

    /**
     * 适配器模式(Adapter):将一个类的接口转换成客户希望的另一个接口,adapter模式
     * 使得原本由于接口不兼容,而不能一起工作的那些类可以一起工作.对修改关闭,对拓展开放. 
     * 不兼容的话 就加一个转接头.
     */
    public class SixNine {
    	/**
    	 * 可以看到work(powerB);  是报错的, powerA和powerB是同等级的对象
    	 * 
    	 */
    	public static void main(String[] args) {
    		/**
    		 * 可以看到  powerA和 powerB 是不可以一起工作的,但是
    		 * 在适配器Adapter的  转换头的作用下可以都在work 下工作.
    		 */
    		PowerA powerA = new PowerAImpl();
    		work(powerA);
    		PowerB powerB = new PowerBImpl();
    		Adapter bToAdapter = new Adapter(powerB);
    		work(bToAdapter);
    		
    	}
    	public static void work(PowerA a) {
    		System.out.println("正在插入...");
    		a.insert();
    		System.out.println("插入结束...");
    	}
    }
    class Adapter implements PowerA{// 针对PowerA 的类型做一个接口.
    	private PowerB powerB; //  为了使PowerB 适用于上述接口.
    	public Adapter(){};
    	public Adapter(PowerB powerB) {
    		this.powerB = powerB;
    	}
    	@Override
    	public void insert() {
    		powerB.connect();
    	}
    	
    }
    interface PowerB{
    	public void connect();
    }
    class PowerBImpl implements PowerB{
    	@Override
    	public void connect() {
    		System.out.println("电源B开始工作...");
    	}
    }
    interface PowerA {
    	public void insert();
    }
    class PowerAImpl implements PowerA{
    
    	@Override
    	public void insert() {
    		// TODO Auto-generated method stub
    		System.out.println("电源A开始工作...");
    	}
    	
    }
    
  • 相关阅读:
    Mysql 数据库学习笔记03 存储过程
    Mysql 数据库学习笔记02 编程
    Mysql 数据库学习笔记01查询
    Struts2学习笔记04 之 拦截器
    Struts2学习笔记03 之 Result组件
    Group by与having理解
    Spring Assert断言工具类
    字符集、编码
    hibernate中Query的list和iterator区别(续)
    hibernate中Query的list和iterator区别
  • 原文地址:https://www.cnblogs.com/A-FM/p/11636799.html
Copyright © 2011-2022 走看看