季浩的Blog
努力
BlogJava
首頁
新隨筆
聯系
聚合
管理
隨筆-46 評論-64 文章-2 trackbacks-0
設計模式學習(二) Adapter Partten
Adapter模式
使用Adapter模式的目的:把一個類的接口轉換成客戶端需要的接口。
適用場合:
當你想使用一個現有類的功能,但是它的接口不能滿足你的需要
當你想創建一個循環使用的類,用于使一些沒有相互聯系的類,或者是未知的將來會引進的類之間協調合作完成某些功能。也就是說,這些類不必要具備一致的接口
當你要使用數個現有的的子類,但是要對每一個子類進行接口的改寫變得很不切實際。
具體的例子
變壓器(Adapter),變壓器把一種電壓變換成另一種電壓。美國的生活用電電壓是110V,而中國的電壓是220V。如果要在中國使用美國電器,就必須有一個能把220V電壓轉換成110V電壓的變壓器。這個變壓器就是一個Adapter。
客戶買回了美國的電器Machine,工作電壓110V,電器插頭為3相(陰、陽、地級),所以需要一個電壓和相級的轉換器或者說是適配器來使這個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
變壓器_相位轉換器
extends
中國_供電
implements
電器需要使用
{
public
void
兩相插口()
{
System.out.println(
"
變壓器_相位轉換器——提供三相到兩相轉換操作,返回兩相插口
"
);
}
public
void
電壓_110V()
{
v
=
this
.voltage()
/
2
;
System.out.println(
"
變壓器_相位轉換器——轉換后提供電壓為:
"
+
v
+
"
V
"
);
}
}
public
class
ClassAdapter
{
public
static
void
main(String[] args)
{
變壓器_相位轉換器 device
=
new
變壓器_相位轉換器();
device.電壓_110V();
device.兩相插口();
System.out.println(
"
經過變壓器_相位轉換器的包裝(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
變壓器_相位轉換器_a
implements
電器需要使用_a
{
中國_供電_a supply
=
new
中國_供電_a();
public
void
兩相插口()
{
System.out.println(
"
變壓器_相位轉換器——提供三相到兩相轉換操作,返回兩相插口
"
);
}
public
void
電壓_110V()
{
supply.v
=
supply.voltage()
/
2
;
System.out.println(
"
變壓器_相位轉換器——轉換后提供電壓為:
"
+
supply.v
+
"
V
"
);
}
}
public
class
ObjectAdapter
{
public
static
void
main(String[] args)
{
變壓器_相位轉換器_a device
=
new
變壓器_相位轉換器_a();
device.電壓_110V();
device.兩相插口();
System.out.println(
"
經過變壓器_相位轉換器的包裝(Warpper),在美國買來的電器能夠使用啦!^0^
"
);
}
}
posted on 2006-02-24 21:13
jht
閱讀(1009)
評論(0)
編輯
收藏
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
讀書:
《JAVA與模式》閻宏
《精通正則表達式》
《Perl語言入門》
《J2EE Development without EJB》
BlogJava-季浩的Blog
100.0%男性傾向,0.0%女性傾向
評點:您的文風冷靜而鎮定,言語間展現出強悍的思辨能力與恢宏的胸襟,一個男子漢的陽剛形象躍然紙上。
yodao
|
博客男女
很不錯的網站,在線沖手機費
<
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)
數獨程序(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和其他相關主題Blog
我的C/C++博客
搜索
積分與排名
積分 - 104112
排名 - 560
最新評論
1.?re: 使用JSON和AJAX創建網站的標簽云(TagCloud)
頂
--fffr
2.?re: Q:為什么透明的PNG格式圖片在網頁里顯示的時候不是透明的?
因為你的網頁背景
--shndpz
3.?re: 使用WebService 和RMI遠程協作
實現類沒有找到
--11
4.?re: Groovy Plugin for Eclipse IDE
安裝后,新建菜單里看不到Groovy Project的選項?
--雷納德
5.?re: Q: response.setHeader("Cache-Control","no-cache"); 是干什么用的?目的是什么?
我個人認為是不緩存或者保存你這次返回的信息,
比如我們在網頁上生成圖片,但不希望這些圖片一直占據內存,就可以使用這個策略吧。
--kaki
閱讀排行榜
1.?Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location](17171)
2.?Q: response.setHeader("Cache-Control","no-cache"); 是干什么用的?目的是什么?(16594)
3.?[JSP] The function *** cannot be located with the specified prefix(7769)
4.?[DWR]Max depth exceeded when dereferencing(4221)
5.?[DWR] --Erroring: batchId[1] message[org.directwebremoting.extend.MarshallException: Error marshalling ...(4204)
評論排行榜
1.?Unable to load bean org.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location](11)
2.?設計模式學習(一) 工廠模式之簡單工廠(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
主站蜘蛛池模板:
成人在线免费观看
|
国产V亚洲V天堂无码
|
在线观看国产区亚洲一区成人
|
亚洲jizzjizz少妇
|
精品久久久久久久免费加勒比
|
亚洲第一区二区快射影院
|
成人片黄网站色大片免费
|
亚洲一区二区三区高清在线观看
|
亚洲中文字幕无码爆乳app
|
日韩视频在线精品视频免费观看
|
五月天婷亚洲天综合网精品偷
|
美女被免费网站在线视频免费
|
亚洲av日韩片在线观看
|
国产大片免费天天看
|
亚洲av无码av制服另类专区
|
最近免费视频中文字幕大全
|
亚洲日本一区二区三区在线不卡
|
岛国精品一区免费视频在线观看
|
亚洲日韩乱码中文无码蜜桃
|
一个人免费观看www视频在线
|
亚洲精品无码久久久久APP
|
免费日本一区二区
|
亚洲免费人成视频观看
|
成人国产mv免费视频
|
国产午夜不卡AV免费
|
亚洲一区二区三区久久
|
国产精品免费看香蕉
|
三年片在线观看免费
|
亚洲天堂2016
|
日本免费一区二区三区四区五六区
|
亚洲福利中文字幕在线网址
|
中文字幕一区二区免费
|
亚洲av片一区二区三区
|
无码国产精品一区二区免费16
|
亚洲娇小性xxxx色
|
亚洲人午夜射精精品日韩
|
h视频在线观看免费完整版
|
亚洲国产一区二区三区青草影视
|
性做久久久久久免费观看
|
jizz日本免费
|
亚洲中文字幕无码中文字
|