季浩的Blog
努力
BlogJava
首頁
新隨筆
聯(lián)系
聚合
管理
隨筆-46 評論-64 文章-2 trackbacks-0
設(shè)計模式學(xué)習(xí)(二) Adapter Partten
Adapter模式
使用Adapter模式的目的:把一個類的接口轉(zhuǎn)換成客戶端需要的接口。
適用場合:
當(dāng)你想使用一個現(xiàn)有類的功能,但是它的接口不能滿足你的需要
當(dāng)你想創(chuàng)建一個循環(huán)使用的類,用于使一些沒有相互聯(lián)系的類,或者是未知的將來會引進的類之間協(xié)調(diào)合作完成某些功能。也就是說,這些類不必要具備一致的接口
當(dāng)你要使用數(shù)個現(xiàn)有的的子類,但是要對每一個子類進行接口的改寫變得很不切實際。
具體的例子
變壓器(Adapter),變壓器把一種電壓變換成另一種電壓。美國的生活用電電壓是110V,而中國的電壓是220V。如果要在中國使用美國電器,就必須有一個能把220V電壓轉(zhuǎn)換成110V電壓的變壓器。這個變壓器就是一個Adapter。
客戶買回了美國的電器Machine,工作電壓110V,電器插頭為3相(陰、陽、地級),所以需要一個電壓和相級的轉(zhuǎn)換器或者說是適配器來使這個Machine能在中國使用。
一、類的Adapter模式
package
Adapter;
interface
電器需要使用
{
public
void
兩相插口();
public
void
電壓_110V();
}
class
中國_供電
{
protected
int
v;
public
中國_供電()
{
v
=
220
;
System.out.println(
"
中國供電提供的電壓是:
"
+
v
+
"
V
"
);
}
//
返回中國電壓的值
public
int
voltage()
{
return
v;
}
}
class
變壓器_相位轉(zhuǎn)換器
extends
中國_供電
implements
電器需要使用
{
public
void
兩相插口()
{
System.out.println(
"
變壓器_相位轉(zhuǎn)換器——提供三相到兩相轉(zhuǎn)換操作,返回兩相插口
"
);
}
public
void
電壓_110V()
{
v
=
this
.voltage()
/
2
;
System.out.println(
"
變壓器_相位轉(zhuǎn)換器——轉(zhuǎn)換后提供電壓為:
"
+
v
+
"
V
"
);
}
}
public
class
ClassAdapter
{
public
static
void
main(String[] args)
{
變壓器_相位轉(zhuǎn)換器 device
=
new
變壓器_相位轉(zhuǎn)換器();
device.電壓_110V();
device.兩相插口();
System.out.println(
"
經(jīng)過變壓器_相位轉(zhuǎn)換器的包裝(Warpper),在美國買來的電器能夠使用啦!^0^
"
);
}
}
二、對象的Adapter模式
package
Adapter;
interface
電器需要使用_a
{
public
void
兩相插口();
public
void
電壓_110V();
}
class
中國_供電_a
{
protected
int
v;
public
中國_供電_a()
{
v
=
220
;
System.out.println(
"
中國供電提供的電壓是:
"
+
v
+
"
V
"
);
}
//
返回中國電壓的值
public
int
voltage()
{
return
v;
}
}
class
變壓器_相位轉(zhuǎn)換器_a
implements
電器需要使用_a
{
中國_供電_a supply
=
new
中國_供電_a();
public
void
兩相插口()
{
System.out.println(
"
變壓器_相位轉(zhuǎn)換器——提供三相到兩相轉(zhuǎn)換操作,返回兩相插口
"
);
}
public
void
電壓_110V()
{
supply.v
=
supply.voltage()
/
2
;
System.out.println(
"
變壓器_相位轉(zhuǎn)換器——轉(zhuǎn)換后提供電壓為:
"
+
supply.v
+
"
V
"
);
}
}
public
class
ObjectAdapter
{
public
static
void
main(String[] args)
{
變壓器_相位轉(zhuǎn)換器_a device
=
new
變壓器_相位轉(zhuǎn)換器_a();
device.電壓_110V();
device.兩相插口();
System.out.println(
"
經(jīng)過變壓器_相位轉(zhuǎn)換器的包裝(Warpper),在美國買來的電器能夠使用啦!^0^
"
);
}
}
posted on 2006-02-24 21:13
jht
閱讀(1012)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
讀書:
《JAVA與模式》閻宏
《精通正則表達式》
《Perl語言入門》
《J2EE Development without EJB》
BlogJava-季浩的Blog
100.0%男性傾向,0.0%女性傾向
評點:您的文風(fēng)冷靜而鎮(zhèn)定,言語間展現(xiàn)出強悍的思辨能力與恢宏的胸襟,一個男子漢的陽剛形象躍然紙上。
yodao
|
博客男女
很不錯的網(wǎng)站,在線沖手機費
<
2006年2月
>
日
一
二
三
四
五
六
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(2)
給我留言
查看公開留言
查看私人留言
隨筆分類
DWR(2)
Eclipse(2)
Groovy&Grails(1)
GWT(1)
Hibernate(1)
J2EE(7)
J2ME(4)
J2SE(14)
OSGI(2)
Pattern
Spring
Struts1(1)
Struts2(2)
Swing Tips(5)
數(shù)獨程序(1)
隨筆檔案
2008年9月 (7)
2008年8月 (3)
2008年7月 (3)
2008年5月 (2)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
2007年10月 (2)
2007年9月 (4)
2007年8月 (1)
2007年7月 (2)
2007年5月 (1)
2007年3月 (4)
2007年1月 (4)
2006年12月 (3)
2006年3月 (1)
2006年2月 (2)
文章檔案
2008年7月 (1)
2008年4月 (1)
我的BLOG
我的.NET和其他相關(guān)主題Blog
我的C/C++博客
搜索
積分與排名
積分 - 104476
排名 - 559
最新評論
1.?re: 使用JSON和AJAX創(chuàng)建網(wǎng)站的標簽云(TagCloud)
頂
--fffr
2.?re: Q:為什么透明的PNG格式圖片在網(wǎng)頁里顯示的時候不是透明的?
因為你的網(wǎng)頁背景
--shndpz
3.?re: 使用WebService 和RMI遠程協(xié)作
實現(xiàn)類沒有找到
--11
4.?re: Groovy Plugin for Eclipse IDE
安裝后,新建菜單里看不到Groovy Project的選項?
--雷納德
5.?re: Q: response.setHeader("Cache-Control","no-cache"); 是干什么用的?目的是什么?
我個人認為是不緩存或者保存你這次返回的信息,
比如我們在網(wǎng)頁上生成圖片,但不希望這些圖片一直占據(jù)內(nèi)存,就可以使用這個策略吧。
--kaki
閱讀排行榜
1.?Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location](17185)
2.?Q: response.setHeader("Cache-Control","no-cache"); 是干什么用的?目的是什么?(16606)
3.?[JSP] The function *** cannot be located with the specified prefix(7782)
4.?[DWR]Max depth exceeded when dereferencing(4233)
5.?[DWR] --Erroring: batchId[1] message[org.directwebremoting.extend.MarshallException: Error marshalling ...(4213)
評論排行榜
1.?Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location](11)
2.?設(shè)計模式學(xué)習(xí)(一) 工廠模式之簡單工廠(7)
3.?[DWR]Max depth exceeded when dereferencing(5)
4.?MyScreenSnap 一個簡單的截圖程序(5)
5.?[DWR] --Erroring: batchId[1] message[org.directwebremoting.extend.MarshallException: Error marshalling ...(4)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 jht
主站蜘蛛池模板:
国产人成亚洲第一网站在线播放
|
91免费在线播放
|
亚洲日韩精品无码AV海量
|
国产成人精品亚洲精品
|
2019中文字幕免费电影在线播放
|
xxxxx做受大片视频免费
|
亚洲国产成人AV在线播放
|
亚洲欧洲日本精品
|
亚洲国产成人一区二区精品区
|
亚洲av午夜精品一区二区三区
|
亚洲精品亚洲人成在线观看下载
|
97视频免费在线
|
久久久免费的精品
|
午夜在线免费视频
|
亚洲精品无码久久
|
天天爽亚洲中文字幕
|
亚洲码在线中文在线观看
|
亚洲AV无码乱码国产麻豆穿越
|
亚洲一区二区三区四区在线观看
|
97无码人妻福利免费公开在线视频
|
羞羞视频在线免费观看
|
亚洲欧洲无卡二区视頻
|
亚洲视频一区二区三区四区
|
自怕偷自怕亚洲精品
|
久久久久久亚洲精品成人
|
久久久久久a亚洲欧洲AV
|
亚洲s色大片在线观看
|
亚洲av之男人的天堂网站
|
亚洲一区二区女搞男
|
亚洲一区AV无码少妇电影☆
|
国产成人亚洲精品狼色在线
|
爱情岛论坛网亚洲品质自拍
|
国产黄色一级毛片亚洲黄片大全
|
亚洲裸男gv网站
|
亚洲中文字幕无码中文字在线
|
亚洲综合在线另类色区奇米
|
亚洲精品国产美女久久久
|
亚洲国产精品高清久久久
|
久久久久亚洲Av片无码v
|
久久精品国产亚洲77777
|
亚洲人成网站在线观看播放青青
|