季浩的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
主站蜘蛛池模板:
亚洲韩国精品无码一区二区三区
|
亚洲精品乱码久久久久蜜桃
|
在线观看亚洲AV每日更新无码
|
一级毛片高清免费播放
|
最近免费最新高清中文字幕韩国
|
亚洲免费日韩无码系列
|
亚洲国产精品成人精品无码区
|
亚洲精品欧美综合四区
|
免费看黄的成人APP
|
成年女人毛片免费播放视频m
|
亚洲国产天堂久久久久久
|
亚洲第一页在线视频
|
精品免费久久久久国产一区
|
青娱分类视频精品免费2
|
国产亚洲av片在线观看16女人
|
亚洲乱色熟女一区二区三区蜜臀
|
中文字幕乱理片免费完整的
|
国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费
|
国产午夜成人免费看片无遮挡
|
A级毛片内射免费视频
|
久久精品国产精品亚洲蜜月
|
国产精品偷伦视频免费观看了
|
成人AV免费网址在线观看
|
亚洲国产av一区二区三区丶
|
7m凹凸精品分类大全免费
|
久久久久亚洲精品天堂
|
亚洲视频在线免费观看
|
香蕉蕉亚亚洲aav综合
|
久久精品人成免费
|
亚洲系列中文字幕
|
91久久成人免费
|
亚洲av永久无码精品天堂久久
|
黄页网站免费在线观看
|
色婷五月综激情亚洲综合
|
美女视频黄a视频全免费
|
亚洲w码欧洲s码免费
|
成年在线观看网站免费
|
久久精品国产亚洲AV
|
亚洲AV无码成人精品区大在线
|
黄色免费网址在线观看
|
国产成人精品久久亚洲
|