java設(shè)計模式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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容