夢幻之旅
DEBUG - 天道酬勤
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
::
671 隨筆 :: 6 文章 :: 256 評論 :: 0 Trackbacks
<
2011年8月
>
日
一
二
三
四
五
六
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
29
30
31
1
2
3
4
5
6
7
8
9
10
公告
本博客中未注原創的文章均為轉載,對轉載內容可能做了些修改和增加圖片注釋,如果侵犯了您的版權,或沒有注明原作者,請諒解
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(21)
給我留言
查看公開留言
查看私人留言
隨筆分類
(644)
Android(10)
(rss)
ANT(4)
(rss)
C#(10)
(rss)
C/C++(16)
(rss)
CSS(3)
(rss)
DataBase(119)
(rss)
DB-DailyMmaintenance(16)
(rss)
Design Patterns(27)
(rss)
english
(rss)
Exceptions(7)
(rss)
EXT(39)
(rss)
FLASH(9)
(rss)
Hardware(20)
(rss)
Hibernate(13)
(rss)
Html(23)
(rss)
Java(143)
(rss)
java Net(10)
(rss)
JavaScript(39)
(rss)
Linux(26)
(rss)
php(5)
(rss)
Regular Exp(3)
(rss)
Spring(17)
(rss)
Struts(12)
(rss)
TOOL(43)
(rss)
VB/VBA/VBS(5)
(rss)
webservice(9)
(rss)
XML(2)
(rss)
我的夢幻旅途(14)
(rss)
隨筆檔案
(669)
2017年9月 (4)
2016年10月 (1)
2015年6月 (1)
2015年4月 (2)
2015年1月 (1)
2014年8月 (2)
2014年7月 (9)
2014年6月 (1)
2014年5月 (2)
2014年4月 (3)
2014年3月 (3)
2013年10月 (4)
2013年9月 (8)
2013年8月 (4)
2013年6月 (3)
2013年5月 (4)
2013年4月 (7)
2013年3月 (1)
2013年1月 (3)
2012年12月 (4)
2012年11月 (1)
2012年10月 (1)
2012年9月 (4)
2012年8月 (1)
2012年7月 (2)
2012年6月 (1)
2012年5月 (4)
2012年4月 (2)
2012年3月 (1)
2012年2月 (4)
2012年1月 (6)
2011年12月 (10)
2011年11月 (7)
2011年10月 (6)
2011年9月 (37)
2011年8月 (34)
2011年7月 (44)
2011年6月 (10)
2011年5月 (5)
2011年4月 (3)
2011年3月 (1)
2011年2月 (1)
2011年1月 (18)
2010年12月 (9)
2010年11月 (13)
2010年10月 (17)
2010年9月 (2)
2010年8月 (10)
2010年7月 (10)
2010年6月 (5)
2010年5月 (8)
2010年4月 (9)
2010年3月 (11)
2010年2月 (3)
2010年1月 (8)
2009年12月 (6)
2009年11月 (10)
2009年10月 (5)
2009年9月 (1)
2009年8月 (18)
2009年7月 (6)
2009年6月 (2)
2009年5月 (1)
2009年4月 (4)
2009年3月 (6)
2009年2月 (5)
2009年1月 (3)
2008年12月 (13)
2008年11月 (13)
2008年10月 (30)
2008年9月 (9)
2008年8月 (24)
2008年7月 (17)
2008年6月 (15)
2008年5月 (16)
2008年4月 (15)
2008年3月 (19)
2008年2月 (3)
2008年1月 (20)
2007年12月 (24)
2007年11月 (9)
文章檔案
(6)
2008年4月 (1)
2008年3月 (1)
2008年1月 (2)
2007年11月 (2)
最新隨筆
1.?PP代碼生成器(四) 使用解決方案生成代碼
2.? PP代碼生成器(三) 設計freemarker模板, 創建解決方案
3.? PP代碼生成器(二) 解決方案, 生成任務, 輔助設計面板
4.? PP代碼生成器(一) 簡介, 下載, 運行
5.?PP持久層代碼生成器
6.?比較好的博客
7.?系統集成項目管理工程師
8.?軟件公司項目經理崗位職責
9.?聯想筆記本 顯示屏 鍵盤失靈 釋放靜電
10.?eclipse maven
積分與排名
積分 - 958986
排名 - 37
最新評論
1.?re: Myeclipse 快捷鍵大全(絕對全)
crl+向右箭頭(輸入法有問題打不出來)移到下一個參數的位置,然后crl+shift+向右箭頭 選中該位置的參數即可
--紅領巾
2.?re: Log4j基本使用方法
555
--555
3.?re: Myeclipse 快捷鍵大全(絕對全)[未登錄]
很不錯,謝謝
--銀狐
4.?re: Flex 表單
是誰這么無聊~嗚~~~
--HUIKK
5.?re: Spring AfterReturning 異常
具體是什么意思啊
--dingli
閱讀排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(70028)
2.?log4j.properties 使用說明(42078)
3.?Myeclipse 快捷鍵大全(絕對全)(32724)
4.?TNSNAMES.ORA 配置(24392)
5.?oracle 樹狀查詢(21359)
評論排行榜
1.?Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream(53)
2.?JMail 異常: java.lang.NoClassDefFoundError: javax/activation/DataSource(21)
3.?javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first(14)
4.?java 讀取 excel 2003 或 excel 2007(14)
5.?java.lang.UnsupportedClassVersionError: Bad version number in .class file(8)
[原創]設計模型探索I2-Factory method parttern 之盤古開天
工廠方法模式:
該模式有一個抽象基類和若干個派生的具體工廠類,基類定義了一個虛工廠方法返回指定產品類的基類,派生類需要實現該虛方法并創建具體產品類返回。注意工廠方法的每個具體工廠只負責返回一種產品類。
工廠和產品是一種一一對應的平行的關系.
GOF對工廠方法模式的概擴是:定義一個創建對象的接口,讓子類決定實例化哪一個類,使一個類的實例化沿遲到其子類中.
工廠方法的組成部份:
1.產品基類
2.具體產品
3.工廠基類
4.具體工廠基類
工廠方法組成部份之間的關系:
例子:
手機基類:
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[Phone]</li>
* <li>Description: [手機抽象類]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
abstract
class
Phone
{
/** */
/**
手機型號
*/
public
String model;
/** */
/**
*<ul>
*<li>Description:[構造方法]</li>
*<ul>
*
@param
model
*/
public
Phone(String model)
{
this
.model
=
model;
}
/** */
/**
* <ul>
* <li>Description:[打電話]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*/
public
abstract
void
call();
/** */
/**
* <ul>
* <li>Description:[聽電話]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*/
public
abstract
void
answer();
/** */
/**
* <ul>
* <li>Description:[發信息]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*/
public
abstract
void
sendMsg();
/** */
/**
* <ul>
* <li>Description:[收信息]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*/
public
abstract
void
receiveMsg();
}
手機5233
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[Nokia5233]</li>
* <li>Description: [諾基亞5233]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
class
Nokia5233
extends
Phone
{
public
Nokia5233()
{
super
(
"
5233
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#answer()
*/
public
void
answer()
{
System.out.println(
this
.model
+
"
接聽電話
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#call()
*/
public
void
call()
{
System.out.println(
this
.model
+
"
打電話
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#receiveMsg()
*/
public
void
receiveMsg()
{
System.out.println(
this
.model
+
"
收短信
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#sendMsg()
*/
public
void
sendMsg()
{
System.out.println(
this
.model
+
"
發短信
"
);
}
}
手機5235
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[Nokia5235]</li>
* <li>Description: [諾基亞5235]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
class
Nokia5235
extends
Phone
{
public
Nokia5235()
{
super
(
"
5235
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#answer()
*/
public
void
answer()
{
System.out.println(
this
.model
+
"
接聽電話
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#call()
*/
public
void
call()
{
System.out.println(
this
.model
+
"
打電話
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#receiveMsg()
*/
public
void
receiveMsg()
{
System.out.println(
this
.model
+
"
收短信
"
);
}
/**/
/*
(non-Javadoc)
* @see simpleFactory.Phone#sendMsg()
*/
public
void
sendMsg()
{
System.out.println(
this
.model
+
"
發短信
"
);
}
}
工廠基類
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[PhoneFactory]</li>
* <li>Description: [手機工廠]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
abstract
class
PhoneFactory
{
/** */
/**
* <ul>
* <li>Description:[創建手機]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@return
*/
public
abstract
Phone createPhone();
}
5233工廠
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[Nokia5233Factory]</li>
* <li>Description: [諾基亞5233工廠]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
class
Nokia5233Factory
extends
PhoneFactory
{
/**/
/*
(non-Javadoc)
* @see methodFactory.PhoneFactory#createPhone()
*/
public
Phone createPhone()
{
return
new
Nokia5233();
}
}
5235工廠
package
methodFactory;
public
class
Nokia5235Factory
extends
PhoneFactory
{
/**/
/*
(non-Javadoc)
* @see methodFactory.PhoneFactory#createPhone()
*/
public
Phone createPhone()
{
return
new
Nokia5235();
}
}
測試類
package
methodFactory;
/** */
/**
* <ul>
* <li>Title:[測試類]</li>
* <li>Description: [type of functional description]</li>
* <li>Copyright 2009 Upengs Co., Ltd.</li>
* <li>All right reserved.</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@version
1.0
*/
public
class
Test
{
/** */
/**
* <ul>
* <li>Description:[method of functional description]</li>
* <li>Created by [Huyvanpull] [2011-8-1]</li>
* <li>Midified by [modifier] [modified time]</li>
* </ul>
*
@param
args
*/
public
static
void
main(String[] args)
{
Phone phone
=
new
Nokia5233Factory().createPhone();
phone.call();
phone
=
new
Nokia5235Factory().createPhone();
phone.receiveMsg();
}
}
優點:
使用工廠方法可以讓用戶的代碼和某一個特定類的了類的代碼解耦.
工廠方法使用戶不必知道它所使用的對象是如何被創建出來的,只需要知道該對象有哪些方法.
posted on 2011-08-01 23:10
HUIKK
閱讀(289)
評論(0)
編輯
收藏
所屬分類:
Design Patterns
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
[原創]設計模型探索S-GoF,設計模式的分類
[原創]設計模型探索R-mediator parttern之月下老人
[原創]設計模型探索Q-bridge parttern之橋歸橋路歸路
[原創]設計模型探索P-template method parttern之死模活樣
[原創]設計模型探索O2-proxy parttern之桃代李疆
[原創]設計模型探索O1-proxy parttern之桃代李疆
[原創]設計模型探索N -flyweight parttern之有福同享
[原創]設計模型探索M-state parttern之各有千秋
[原創]設計模型探索L-composite parttern之玉樹臨風
[原創]設計模型探索K-builder parttern之各施其職
Powered by:
BlogJava
Copyright © HUIKK
主站蜘蛛池模板:
www.999精品视频观看免费
|
91久久亚洲国产成人精品性色
|
亚洲人成免费网站
|
免费一级毛suv好看的国产网站
|
精品亚洲aⅴ在线观看
|
国产成人高清亚洲
|
国产精品黄页在线播放免费
|
久久久精品2019免费观看
|
9久热精品免费观看视频
|
污污的视频在线免费观看
|
国产午夜亚洲精品国产
|
中文字幕亚洲精品资源网
|
国产V亚洲V天堂A无码
|
亚洲精品黄色视频在线观看免费资源
|
成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片
|
日本免费电影一区
|
扒开双腿猛进入爽爽免费视频
|
精品国产无限资源免费观看
|
日韩中文字幕免费视频
|
亚洲视频在线观看免费
|
男人的天堂网免费网站
|
香蕉成人免费看片视频app下载
|
大地资源中文在线观看免费版
|
99久久免费国产特黄
|
热99RE久久精品这里都是精品免费
|
eeuss影院ss奇兵免费com
|
精品97国产免费人成视频
|
国产午夜成人免费看片无遮挡
|
亚欧日韩毛片在线看免费网站
|
91麻豆国产免费观看
|
黄瓜视频高清在线看免费下载
|
成年人免费观看视频网站
|
国产真实伦在线视频免费观看
|
亚洲国产综合精品中文字幕
|
亚洲一区二区三区偷拍女厕
|
亚洲色欲色欲www
|
欧美色欧美亚洲另类二区
|
你懂得的在线观看免费视频
|
51在线视频免费观看视频
|
精品国产免费一区二区
|
国产国拍亚洲精品福利
|