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开始工作...");
    	}
    	
    }
    
  • 相关阅读:
    java学习笔记(三)
    JAVA 学习笔记(2)
    java学习笔记
    第二次作业完成情况
    第一次作业完成情况
    使用MarkDown标记语言发博客
    《Java高级程序设计》第一周作业
    纪逝去的毕业后的两年时光
    #这是来联系Markdown语法的
    CodeFirst初体验——问题三
  • 原文地址:https://www.cnblogs.com/A-FM/p/11636799.html
Copyright © 2011-2022 走看看