java設計模式02(工廠方法模式)

工廠方法模式簡稱為工廠模式萧求,又可稱為虛擬構(gòu)造器模式或多態(tài)工廠模式。工廠方法模式是一種類創(chuàng)建型模式顶瞒。在工廠方法模式中夸政,工廠父類負責定義創(chuàng)建產(chǎn)品對象的公共接口,而工廠子類負責生成具體的產(chǎn)品對象榴徐,這樣做的目的是將產(chǎn)品類的實例化操作延遲到工廠子類中完成守问,即通過工廠子類來確定究竟應該實例化哪一個具體產(chǎn)品類匀归。
概述:定義一個用于創(chuàng)建對象的接口,但是讓子類決定將哪一個類實例化耗帕。工廠方法模式讓一個類的實例化延遲到其子類穆端。

工廠方法模式結(jié)構(gòu)與實現(xiàn)
1.Factory(抽象工廠):在抽象工廠類中聲明了工廠方法,用于返回生產(chǎn)的產(chǎn)品仿便。抽象工廠是工廠方法模式的核心体啰,所有創(chuàng)建對象的工廠類都必須實現(xiàn)該接口。

public interface Factory {

    public Product factoryMethod();
}

2.ConcreteFactory(具體工廠):它是抽象工廠類的子類(實現(xiàn)類)嗽仪,實現(xiàn)了在抽象工廠中聲明的工廠方法荒勇,并返回一個具體產(chǎn)品類的實例。

public class ConcreteFactory implements Factory {

    @Override
    public Product factoryMethod() {
        //父類的引用指向子類對象
        return new ConcreteProduct();
    }

}

3.Product(抽象產(chǎn)品):他是定義產(chǎn)品的接口闻坚,是工廠方法模式所創(chuàng)建對象的超類型沽翔,也就是產(chǎn)品對象的公共父類。

public interface Product {

    /**
     * 創(chuàng)建產(chǎn)品
     */
    public void createProduct();
}

4.ConcreteProduct(具體產(chǎn)品):它實現(xiàn)類抽象產(chǎn)品接口窿凤,某種類型的具體產(chǎn)品由專門的具體工廠創(chuàng)建仅偎,且具體工廠和具體產(chǎn)品之間一一對應。

public class ConcreteProduct implements Product {

    @Override
    public void createProduct() {
        System.out.println("創(chuàng)建具體產(chǎn)品雳殊!");
    }

}

5.Test

public class Test {

    public static void main(String[] args) {
        Factory factory=new ConcreteFactory();
        Product product=factory.factoryMethod();
        product.createProduct();
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末橘沥,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子夯秃,更是在濱河造成了極大的恐慌座咆,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寝并,死亡現(xiàn)場離奇詭異箫措,居然都是意外死亡腹备,警方通過查閱死者的電腦和手機衬潦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來植酥,“玉大人镀岛,你說我怎么就攤上這事∮淹裕” “怎么了漂羊?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長卸留。 經(jīng)常有香客問我走越,道長,這世上最難降的妖魔是什么耻瑟? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任旨指,我火速辦了婚禮赏酥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谆构。我一直安慰自己裸扶,他們只是感情好,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布搬素。 她就那樣靜靜地躺著呵晨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪熬尺。 梳的紋絲不亂的頭發(fā)上摸屠,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天,我揣著相機與錄音猪杭,去河邊找鬼餐塘。 笑死,一個胖子當著我的面吹牛皂吮,可吹牛的內(nèi)容都是我干的戒傻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蜂筹,長吁一口氣:“原來是場噩夢啊……” “哼需纳!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艺挪,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤不翩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后麻裳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體口蝠,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年津坑,在試婚紗的時候發(fā)現(xiàn)自己被綠了妙蔗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡疆瑰,死狀恐怖眉反,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情穆役,我是刑警寧澤寸五,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站耿币,受9級特大地震影響梳杏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一十性、第九天 我趴在偏房一處隱蔽的房頂上張望叭莫。 院中可真熱鬧,春花似錦烁试、人聲如沸雇初。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽靖诗。三九已至,卻和暖如春支示,著一層夾襖步出監(jiān)牢的瞬間刊橘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工颂鸿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留促绵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓嘴纺,卻偏偏與公主長得像败晴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子栽渴,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 文章部分內(nèi)容轉(zhuǎn)載自:http://blog.csdn.net/zhangerqing 一尖坤、設計模式的分類 總體來說...
    j_cong閱讀 2,068評論 0 20
  • 簡單工廠模式雖然簡單,但存在一個很嚴重的問題闲擦。當系統(tǒng)中需要引入新產(chǎn)品時慢味,由于靜態(tài)工廠方法通過所傳入?yún)?shù)的不同來創(chuàng)建...
    justCode_閱讀 1,187評論 1 9
  • 工廠模式是我們最常用的實例化對象模式了,是用工廠方法代替new操作的一種模式墅冷。通常我們所說的工廠模式是指工廠方法模...
    zfylin閱讀 1,316評論 0 7
  • 設計模式基本原則 開放-封閉原則(OCP)纯路,是說軟件實體(類、模塊寞忿、函數(shù)等等)應該可以拓展驰唬,但是不可修改。開-閉原...
    西山薄涼閱讀 3,798評論 3 14
  • 想不出好ID了閱讀 280評論 0 0