欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Adapter模式筆記

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

Adapter有兩種實現(xiàn)方式
1. 類適配器
2. 對象適配器

看GOF時就順手寫一個Stack Adapter的例子, java從1.1版本帶來的Stack有不少缺點, 用List包裝來實現(xiàn)Stack是個不錯的選擇, 應(yīng)用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模式筆記


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲欧洲日本在线观看 | 99pao成人国产永久免费视频 | 性久久久久久久久波多野结衣 | 国产欧美视频在线观看 | 国产高清美女一级毛片 | 午夜免费视频 | 亚洲激情 欧美 | 波多野结衣全集在线观看 | 欧美一区二区三区四区不卡 | 日韩三级不卡 | 天天干天天操 | 日韩一二区 | 国产偷国产偷在线高清 | 91网页在线观看 | 92午夜剧场 | 国产精品久久久久久久久久久新郎 | 天天久久狠狠色综合 | 日韩久久精品 | 国产成人一区二区三区 | 一级黄色毛片视频 | 日韩中文字幕网站 | 夜夜艹日日艹 | 国产成人精品视频免费 | 精品国产免费久久久久久 | 欧美成人黑人视频免费观看 | 很黄很粗很湿很刺激的视频 | 成人一级黄色大片 | 日韩免费福利视频 | 亚洲精品欧美视频 | 无码激情做A爰片毛片A片小说 | 黄色资源视频 | 精品免费久久久久国产一区 | 午夜影院操 | 欧美日韩视频在线第一区 | 伊人a.v在线 | 国产va免费精品观看精品 | 欧美日韩一区二区三区在线观看 | 日韩第一页 | 免费黄色av | 国产探花在线精品一区二区 | 成人免费影院 |