色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

java結(jié)構(gòu)性模式之變壓器模式介紹(一)

瀏覽:2日期:2024-06-28 08:15:27
內(nèi)容: 什么是結(jié)構(gòu)性模式結(jié)構(gòu)性模式描述類和對(duì)象怎樣結(jié)合在一起成為較大的結(jié)構(gòu)。 結(jié)構(gòu)性模式描述兩種不同的東西:類與類的實(shí)例。根據(jù)它們所描述的東西的不同, 結(jié)構(gòu)性模式可以分為類結(jié)構(gòu)模式和實(shí)例結(jié)構(gòu)模式兩種。 類結(jié)構(gòu)模式使用繼承(inheritance)來(lái)把類,接口等組合在一起,形成更大的結(jié)構(gòu)。 當(dāng)一個(gè)類從父類繼承,并實(shí)現(xiàn)某接口時(shí),這個(gè)新的類就把父類的結(jié)構(gòu)和接口的結(jié)構(gòu)結(jié)合起來(lái)。 類結(jié)構(gòu)模式是靜態(tài)的。一個(gè)類結(jié)構(gòu)模式的典型的例子,就是類形式的變壓器模式。 實(shí)例結(jié)構(gòu)模式描述各種不同類型的把對(duì)象組合在一起,實(shí)現(xiàn)新的功能的方法。實(shí)例結(jié)構(gòu)模式是動(dòng)態(tài)的。 一個(gè)典型的實(shí)例結(jié)構(gòu)模式,就是代理人模式,代理人模式將在以后介紹。其它的例子包括后面將要介紹的復(fù)合模式, 飛行重量模式,裝飾模式,以及實(shí)例形式的變壓器模式等。 有一些模式會(huì)有類結(jié)構(gòu)模式的形式和實(shí)例結(jié)構(gòu)模式的形式兩種,成為以上兩種形式的結(jié)構(gòu)模式的極好注解。 本節(jié)要介紹的變壓器模式就是這樣,它有類形式和實(shí)例形式兩種。 變壓器模式的介紹變壓器模式把一個(gè)類的接口變換成客戶端所期待的另一種接口。變壓器模式使原本無(wú)法在一起工作的兩個(gè)類能夠在一起工作。 如前所述,變壓器模式是關(guān)于類結(jié)構(gòu)的結(jié)構(gòu)性模式,因而是靜態(tài)的模式。 這很象變壓器(Adapter)---變壓器把一種電壓變換成另一種電壓。當(dāng)我把美國(guó)的電器拿回中國(guó)大陸去用的時(shí)候, 我就面臨電壓不同的問(wèn)題。美國(guó)的生活用電壓是110伏,而中國(guó)的電壓是220伏。我如果要在中國(guó)大陸使用我在美國(guó)使用的電器, 我就必須有一個(gè)能把220伏電壓轉(zhuǎn)換成110伏電壓的變壓器。而這正象是本模式所做的事,因此此模式被稱為變壓器模式。 讀者可能也會(huì)想到,Adapter在中文也可翻譯為轉(zhuǎn)換器(適配器)。實(shí)際上,轉(zhuǎn)換器(適配器)也是一個(gè)合適的名字。仍用電器作例子, 美國(guó)的電器的插頭一般是三相的,即除了陽(yáng)極,陰極外,還有一個(gè)地極。中國(guó)大陸的建筑物內(nèi)的電源插座一般只有兩極,沒(méi)有地極。 這時(shí)候,即便電器的確可以接受220伏電壓,電源插座和插頭不匹配,也使電器無(wú)法使用。 一個(gè)三相到兩相的轉(zhuǎn)換器(適配器)就能解決這個(gè)問(wèn)題。因此此模式也可被稱為轉(zhuǎn)換器(適配器)模式。 同時(shí),這種做法也很象包裝過(guò)程,被包裝的物體的真實(shí)樣子被包裝所掩蓋和改變,因此有人把這種模式叫做包裝(Wrapper)模式。事實(shí)上, 我們經(jīng)常寫(xiě)很多這樣的wrapper類,把已有的一些類包裹起來(lái),使之能有滿足需要的接口。 變壓器模式有類形式和實(shí)例形式兩種不同的形式。 類形式的變壓器模式的定義類形式的變壓器模式的類圖定義如下。 IMG http://www.yesky.com/20011225/jt1225-1-classadapter.gif[/IMG]圖1. 類形式的類變壓器模式的類圖定義 在圖1可以看出,模式所涉及的成員有: 目標(biāo)(Target)。這就是我們所期待得到的接口。注意,由于這里討論的是類變壓器模式,因此目標(biāo)不可以是類。源(Adaptee)。現(xiàn)有需要適配的接口。 變壓器(Adapter)。變壓器類是本模式的核心。變壓器把源接口轉(zhuǎn)換成目標(biāo)接口。顯然,這一角色不可以是接口, 而必須是實(shí)類。 本模式的示范代碼如下: package com.javapatterns.adapter.classAdapter;public interface Target{ /** * Class Adaptee contains operation sampleOperation1. */ void sampleOperation1(); /** * Class Adaptee doesn't contain operation sampleOperation2. */ void sampleOperation2();}代碼清單1. Target的源代碼。 package com.javapatterns.adapter.classAdapter;public class Adaptee{ public void sampleOperation1(){}}代碼清單2. Adaptee的源代碼。 package com.javapatterns.adapter.classAdapter;public class Adapter extends Adaptee implements Target{ /** * Class Adaptee doesn't contain operation sampleOperation2. */ public void sampleOperation2() { // Write your code here }}代碼清單3. Adapter的源代碼。 類形式的變壓器模式的效果第一、 使用一個(gè)實(shí)類把源(Adaptee)適配到目標(biāo)(Target)。這樣一來(lái),如果你想把源以及源的子類都使用此類適配, 就行不通了。 第二、 由于變壓器類是源的子類,因此可以在變壓器類中置換(override)掉源的一些方法。 第三、 由于只引進(jìn)了一個(gè)變壓器類,因此只有一個(gè)路線到達(dá)目標(biāo)類。問(wèn)題得到簡(jiǎn)化。 from-yesky Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 成人免费网址在线 | 欧美精品片在线观看网站 | 黄色作爱| 在线观看免费黄视频 | 九九在线精品视频xxx | 国产网站免费视频 | 91在线亚洲| 三级大片在线观看 | 成人福利网站在线看视频 | 国产色a | 普通话对白国产精品一级毛片 | 欧美亚洲日本一区二区三区浪人 | 亚洲不卡在线观看 | 久草在线免费播放 | 久久久久久国产视频 | 国产亚洲欧洲一区二区三区 | 欧美国产精品久久 | 精品日韩欧美一区二区三区 | 可以看毛片的网站 | 欧美一级久久久久久久久大 | 牛牛a级毛片在线播放 | 国产蜜汁tv福利在线 | 亚洲成av人影片在线观看 | 日韩欧美视频一区二区 | 九九视频在线观看视频6 | 欧美在线一区视频 | 清纯偷拍精品视频在线观看 | 一本一道久久 | 一个人的视频日本免费 | japanese乱子另类 | 一本色道久久综合网 | 精品日韩欧美一区二区三区 | 免费播放毛片 | 国产亚洲精品片a77777 | 一级毛片在线看 | 国产成人艳妇在线观看 | 在线不卡一区二区 | 国产99视频在线 | 久久国产精品自线拍免费 | 国产精品国产三级国产a | 国产精品久久不卡日韩美女 |