設計模式-適配器模式

來源:《設計模式之禪》java

定義:將一個類的接口 變換成客戶端指望的另外一個接口,從而使本來不匹配而沒法一塊兒工做的兩個類能在一塊兒工做。設計模式

適配器三個角色:ide

  1. Target 目標角色:定義把其餘類接口轉換爲什麼種接口,即指望的接口。spa

  2. Adaptee源角色:將已經存在的、運行良好的的類或對象,經適配器包裝,轉換爲目標角色。設計

  3. Adapter適配器角色:把源角色轉換爲目標角色。code

類圖:對象

代碼:接口

抽象目標角色get

/**
 * 
 */
package cc.rico.pattern.adapter;

/**
 * @author rico
 * 抽象目標角色
 */
public interface Target {
	/**
	 * 目標角色方法
	 */
	public void option();
}

具體目標角色io

/**
 * 
 */
package cc.rico.pattern.adapter;

/**
 * @author rico
 * 具體目標角色
 */
public class ConcreteTarget implements Target {

	@Override
	public void option() {
		System.out.println("####ConcreteTarget.option...");
	}
}

源適配角色

/**
 * 
 */
package cc.rico.pattern.adapter;

/**
 * @author rico 
 * 源適配角色
 */
public class Adaptee {
	public void action() {
		System.out.println("###Adaptee.action...");
	}
}

適配器角色

/**
 * 
 */
package cc.rico.pattern.adapter;

/**
 * @author rico
 * 適配器角色
 */
public class Adapter extends Adaptee implements Target {

	/* (non-Javadoc)
	 * @see cc.rico.pattern.adapter.Target#option()
	 */
	@Override
	public void option() {
		super.action();
	}

}

場景類

/**
 * 
 */
package cc.rico.pattern.adapter;

/**
 * @author rico
 * 場景類
 */
public class Client {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// 源操做
		Target target = new ConcreteTarget();
		target.option();
		
		
		// 適配器後操做
		target = new Adapter();
		target.option();
	}
}


適配器模式優勢:

  1. 能夠使兩個沒有關係的類在一塊兒運行。

  2. 增長類間的透明度。

  3. 提升類複用性。

  4. 靈活性很是好。

適配器模式缺點:

     修改一個已經投產的接口。

使用場景:

擴展:

相關文章
相關標籤/搜索