設計模式----適配器模式UML和實現代碼(5個必須掌握的設計模式)

1、什麼是適配器模式?

  1. 適配器模式定義:

    將一個類的接口轉換成客戶但願的另一個接口。Adapter模式使得本來因爲接口不兼容而不能一塊兒工做的那些類能夠一塊兒工做。java

  2. 類型:結構型模式

  3. 順口溜:裝橋組享代外


2、適配器模式UML

3、JAVA代碼實現

package com.amosli.dp.structural.adapter;

public interface Target {
	public void request();
}

package com.amosli.dp.structural.adapter;

/**
 * 適配器
 * 
 * @author amosli
 *
 */
public class Adapter implements Target {

	private Adaptee adaptee = new Adaptee();

	@Override
	public void request() {
		adaptee.specialRequest();
	}

}


package com.amosli.dp.structural.adapter;

public class Adaptee {
	public void specialRequest() {
		System.out.println("special...");
	}
}


package com.amosli.dp.structural.adapter;
/**
 * 客戶端
 * 
 * @author amosli
 *
 */
public class Client {
	public static void main(String[] args) {
		Target adapter = new Adapter();
		adapter.request();
	}
}

4、使用場景

你想使用一個已經存在的適配器模式,而他的接口不符合你的需求。你想建立一個能夠複用的類,該類能夠與其餘不相關的類或不可預見的類協同工做。你想使用一些已經存在的子類,可是不可能對每個都進行子類化已一匹配他們的接口,對象適配器能夠適配他的父類接口。 適配器如同一個常見的變壓器,也如同電腦的變壓器和插線板之間的電源鏈接線,他們雖然都是3相的,可是電腦後面的插孔卻不能直接插到插線板上。git

 1 系統須要使用現有的類,而這些類的接口不符合系統的接口。

 2 想要創建一個能夠重用的類,用於與一些彼此之間沒有太大關聯的一些類,包括一些可能在未來引進的類一塊兒工做。

 3 兩個類所作的事情相同或類似,可是具備不一樣接口的時候。

 4 舊的系統開發的類已經實現了一些功能,可是客戶端卻只能以另外接口的形式訪問,但咱們不但願手動更改原有類的時候。

 5 使用第三方組件,組件接口定義和本身定義的不一樣,不但願修改本身的接口,可是要使用第三方組件接口的功能。

適配器模式通常用於對於已有的設計進行銜接,不要在系統設計之初就開始考慮使用適配器模式,儘可能使用其餘模式代替!
github

5、源碼地址

本系列文章源碼地址,https://github.com/amosli/dp  歡迎Fork  & Star !!ide

相關文章
相關標籤/搜索