亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Adapter模式筆記

系統 1809 0
名稱:適配器, 轉接器或包裝器.
?
想一想生活中常見的轉接器, 我的手機原配的2.5MM耳機壞了, 有一個普通的3.5MM耳機插頭大了, 用不了, 這時候我就需要一個轉接器.
這個轉接器所做的事情就是接口的轉換, 使得原本不兼容的兩類東西可以一起工作.
?
如果這個轉接器一頭是3.5MM的插口, 一頭是2.5MM的插頭, 它就是一個對象適配器(對象組合的方法)
如果這個轉接器既有2.5MM/3.5MM的插口/插頭, 也有2.5MM/3.5MM的插口/插頭, 它可說是一個類適配器(多重繼承的方法)
?
當你想使用一個已有的類, 而它的接口不符合你的需求, 那么用適配器吧
當你想建立一個新的類, 它可以與其他接口協同工作, 雖然那些接口可能并不兼容你的類,用適配器吧
當你想使用一些已有的類,?而它們實現了共同的接口,還是用適配器吧,注意是對象適配器噢
?
有的時候我們定義了一個接口, 可是呢, 大多數子類并不需要實現所有的方法, 這時我們可用一個抽象父類來適配這個接口
比如 java.awt.event .WindowAdapter, 它實現了 WindowFocusListener , WindowListener , WindowStateListener , EventListener
如果要實現 WindowListener 接口,則您必須定義該接口內的所有方法。而此抽象類將所有方法都定義為 null,所以只需針對關心的事件定義方法

Adapter有兩種實現方式
1. 類適配器
2. 對象適配器

看GOF時就順手寫一個Stack Adapter的例子, java從1.1版本帶來的Stack有不少缺點, 用List包裝來實現Stack是個不錯的選擇, 應用Adapter模式, 可以很簡單的做到,以下程序中, ClassStack為類適配器, ObjectStack為對象適配器
?
      import java.util.LinkedList;
import java.util.List;
import static java.lang.System.*;
/**
 * StackAdapter, a demo program of Adapter
 * 
 * @author:Walter Fan at 
      
        http://wind007.iteye.com
      
      


?* @version 1.0 10/28/2008
 */
public class StackAdapter {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		out.println("Adapter pattern demo:");
		Stack<Integer> stack1 = new ClassStack<Integer>();
		out.println("=== Class Adapter ===");
		for (int i = 0; i < 10; i++) {
			stack1.push(i);
		}
		out.println("=== Object Adapter ===");
		Stack<Integer> stack2 = new ClassStack<Integer>();
		for (int i = 0; i < 10; i++) {
			stack2.push(i);
		}
		
		out.println("Good Bye,\n-Walter Fan");
		
	}

}

interface Stack<T>
{
  void push(T data);
  T pop();
  T top();
  int size();
  void clear();
  boolean isEmpty();
}
 
class ObjectStack<T> implements Stack<T> {
    private LinkedList<T> myList =new LinkedList<T>() ;
    public void push(T data) {
        myList.addFirst(data);
    }
    public T top() {
        return myList.getFirst();
    }
    
    public T pop() {
        return myList.removeFirst();
    }
    
    public boolean isEmpty() {
        return myList.isEmpty();
    }
    
    public void clear() {
        myList.clear();
    }
    
    public int size() {
    	return myList.size();
    }
    
}

class ClassStack<T> extends LinkedList<T> implements Stack<T>, List<T> {

	private static final long serialVersionUID = 1L;

	public T top() {
		return getFirst();
	}
}
    
?
?
?
?

Adapter模式筆記


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 九九热国产视频 | 丁香综合在线 | 日日干天天爽 | 91精品国产综合久久青草 | 国产精品永久免费 | 国产欧美日韩成人 | 青青青免费视频精品99 | 99久久精品国产一区二区成人 | 狠狠色狠狠色综合网 | 人人干人人爱 | 久久精品青草社区 | 欧美做爰xxxⅹ性欧 欧美做爰xxxⅹ在线视频hd | 欧美一区二区在线 | 亚洲一区在线视频 | 亚洲视屏一区 | 亚洲久久视频 | 欧美日韩色视频 | 日韩精品欧美一区二区三区 | 成人亚州| 久热官网 | 91精品自在拍精选久久 | 久久这里只有精品66 | 真实国语对白视频播放 | 亚洲天堂久久精品 | 久久夜色精品国产噜噜小说 | 四虎永久在线精品2022 | 国产精品久久精品 | 欧美伦理一区二区三区 | 久久综合九九亚洲一区 | 日日摸夜夜添夜夜添毛片 | 日本国产精品 | 欧美成人高清视频 | 四虎网址在线观看 | 99这里都是精品 | 国产精品99久久久久久小说 | 日日碰夜夜爽 | 国产小福利 | 夜色成人免费观看 | 亚洲日本高清影院毛片 | 伊人不卡久久大香线蕉综合影院 | www一区|