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

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條評論
主站蜘蛛池模板: 国内精品美女久久久久 | 国产美女视频做爰 | 精品在线一区二区 | 日本人xx视频免费视频 | 国产高清狼人香蕉在线观看 | 国产精品2020观看久久 | 国内精品久久久久久久aa护士 | 久久88香港三级台湾三级中文 | 亚洲综合一二三 | 亚洲视频在线免费观看 | 91精品国产美女福到在线不卡 | 黄色在线视频观看 | 日日夜夜操操 | 国产精品久久久久鬼色 | 国产一区二区三区 | 99久久影院 | 91破解版在线 | 亚洲 | 久久婷五月综合 | 国产精品成人在线 | 韩国欧美一级毛片免费 | 国产日韩欧美亚洲综合在线 | 午夜一级毛片看看 | 一级aa毛片 | 国产精品久久久久久久久久影院 | 91av国产在线| 久久久精品一区二区三区 | 四虎黄色影视库 | 女人隐私秘视频黄www免费 | 狠狠色噜噜 | 日本性网址| 中文精品视频一区二区在线观看 | 91精品国产免费网站 | 国产91精品久久久久久久 | 日韩中文字幕网 | 国产精品久久久久影视不卡 | 久久国产精品亚洲va麻豆 | 久久精品亚洲一区二区三区浴池 | 日日日日日操 | 国产高清在线视频一区二区三区 | 中文精品爱久久久国产 | 日韩欧美一区二区三区不卡 |