亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁/技術文章
文章詳情頁

java結構性模式之變壓器模式介紹(一)

【字号: 作者:豬豬瀏覽:4日期:2024-06-28 08:15:27
內容: 什么是結構性模式結構性模式描述類和對象怎樣結合在一起成為較大的結構。 結構性模式描述兩種不同的東西:類與類的實例。根據它們所描述的東西的不同, 結構性模式可以分為類結構模式和實例結構模式兩種。 類結構模式使用繼承(inheritance)來把類,接口等組合在一起,形成更大的結構。 當一個類從父類繼承,并實現某接口時,這個新的類就把父類的結構和接口的結構結合起來。 類結構模式是靜態的。一個類結構模式的典型的例子,就是類形式的變壓器模式。 實例結構模式描述各種不同類型的把對象組合在一起,實現新的功能的方法。實例結構模式是動態的。 一個典型的實例結構模式,就是代理人模式,代理人模式將在以后介紹。其它的例子包括后面將要介紹的復合模式, 飛行重量模式,裝飾模式,以及實例形式的變壓器模式等。 有一些模式會有類結構模式的形式和實例結構模式的形式兩種,成為以上兩種形式的結構模式的極好注解。 本節要介紹的變壓器模式就是這樣,它有類形式和實例形式兩種。 變壓器模式的介紹變壓器模式把一個類的接口變換成客戶端所期待的另一種接口。變壓器模式使原本無法在一起工作的兩個類能夠在一起工作。 如前所述,變壓器模式是關于類結構的結構性模式,因而是靜態的模式。 這很象變壓器(Adapter)---變壓器把一種電壓變換成另一種電壓。當我把美國的電器拿回中國大陸去用的時候, 我就面臨電壓不同的問題。美國的生活用電壓是110伏,而中國的電壓是220伏。我如果要在中國大陸使用我在美國使用的電器, 我就必須有一個能把220伏電壓轉換成110伏電壓的變壓器。而這正象是本模式所做的事,因此此模式被稱為變壓器模式。 讀者可能也會想到,Adapter在中文也可翻譯為轉換器(適配器)。實際上,轉換器(適配器)也是一個合適的名字。仍用電器作例子, 美國的電器的插頭一般是三相的,即除了陽極,陰極外,還有一個地極。中國大陸的建筑物內的電源插座一般只有兩極,沒有地極。 這時候,即便電器的確可以接受220伏電壓,電源插座和插頭不匹配,也使電器無法使用。 一個三相到兩相的轉換器(適配器)就能解決這個問題。因此此模式也可被稱為轉換器(適配器)模式。 同時,這種做法也很象包裝過程,被包裝的物體的真實樣子被包裝所掩蓋和改變,因此有人把這種模式叫做包裝(Wrapper)模式。事實上, 我們經常寫很多這樣的wrapper類,把已有的一些類包裹起來,使之能有滿足需要的接口。 變壓器模式有類形式和實例形式兩種不同的形式。 類形式的變壓器模式的定義類形式的變壓器模式的類圖定義如下。 IMG http://www.yesky.com/20011225/jt1225-1-classadapter.gif[/IMG]圖1. 類形式的類變壓器模式的類圖定義 在圖1可以看出,模式所涉及的成員有: 目標(Target)。這就是我們所期待得到的接口。注意,由于這里討論的是類變壓器模式,因此目標不可以是類。源(Adaptee)?,F有需要適配的接口。 變壓器(Adapter)。變壓器類是本模式的核心。變壓器把源接口轉換成目標接口。顯然,這一角色不可以是接口, 而必須是實類。 本模式的示范代碼如下: 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的源代碼。 類形式的變壓器模式的效果第一、 使用一個實類把源(Adaptee)適配到目標(Target)。這樣一來,如果你想把源以及源的子類都使用此類適配, 就行不通了。 第二、 由于變壓器類是源的子類,因此可以在變壓器類中置換(override)掉源的一些方法。 第三、 由于只引進了一個變壓器類,因此只有一個路線到達目標類。問題得到簡化。 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
標簽: Java
相關文章:
主站蜘蛛池模板: 国产一级精品视频 | 中国一级毛片视频 | 日本在线一区二区 | 看黄网址在线观看 | 日韩成人黄色片 | 亚洲国产网址 | 国产1024| 国产午夜人做人视频羞羞 | 一级黄色日本 | 亚洲阿v天堂2021在线观看 | 在线免费观看视频黄 | 久久精品国产69国产精品亚洲 | 女人牲交一级毛片 | 亚洲精品一区二区ai换脸 | 国产女人精品性视频 | 中文字幕在线观看一区 | 欧美精品成人一区二区视频一 | 国产在线视频欧美亚综合 | 一级二级毛片 | 欧美成人国产一区二区 | 日韩在线视频www色 日韩在线视频一区 | 91短视频黄 | 国产毛片久久国产 | 国产伦精一区二区三区 | 伊人成伊人成综合网2222 | a级毛片免费在线观看 | 久久综合精品不卡一区二区 | 久久午夜鲁丝片午夜精品 | 久久视频国产 | 91国自产精品中文字幕亚洲 | 日韩大片观看网址 | 精品国产免费一区二区三区五区 | 国产亚洲福利精品一区二区 | 国产香港特级一级毛片 | 91久久精品青青草原伊人 | 制服丝袜综合第八页 | 午夜一级黄色片 | 午夜在线播放免费人成无 | 成人免费一级毛片在线播放视频 | 国产人成精品香港三级在 | 国产成人v片视频在线观看 国产成人v视频在线观看 |