亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Abstract factory pattern-抽象工廠模式

系統(tǒng) 1714 0
參考文獻:
http://en.wikipedia.org/wiki/Abstract_factory_pattern

??? 抽象工廠模式(英語:Abstract Factory)是一種常見的設計模式。此模式為一個產(chǎn)品家族提供了統(tǒng)一的創(chuàng)建接口。當需要這個產(chǎn)品家族的某一系列的時候,可以從抽象工廠中選出相對系的系列來創(chuàng)建一個具體的工廠類別。

例子
??? 假設我們有兩種產(chǎn)品接口 Button 和 Border ,每一種產(chǎn)品都支持多種系列,比如 Mac 系列和 Windows 系列。這樣每個系列的產(chǎn)品分別是 MacButton, WinButton, MacBorder, WinBorder 。為了可以在運行時刻創(chuàng)建一個系列的產(chǎn)品族,我們可以為每個系列的產(chǎn)品族建立一個工廠 MacFactory 和 WinFactory 。每個工廠都有兩個方法 CreateButton 和 CreateBorder 并返回對應的產(chǎn)品,可以將這兩個方法抽象成一個接口 AbstractFactory 。這樣在運行時刻我們可以選擇創(chuàng)建需要的產(chǎn)品系列。

    
package com.sinosoft.train.gof.cp;

interface GUIFactory {
    public Button createButton();
}
 
 
class WinFactory implements GUIFactory {
    public Button createButton() {
        return new WinButton();
    }
}
 
 
class OSXFactory implements GUIFactory {
    public Button createButton() {
        return new OSXButton();
    }
}

interface Button {
    public void paint();
}
 
 
class WinButton implements Button {
    public void paint() {
        System.out.println("I'm a WinButton");
    }
}
 
 
class OSXButton implements Button {
    public void paint() {
        System.out.println("I'm an OSXButton");
    }
}
 
 
class Application {
    public Application(GUIFactory factory){
        Button button = factory.createButton();
        button.paint();
    }
}
 
public class AbstractFactory {
    public static void main(String[] args) {
        new Application(createOsSpecificFactory());
    }
 
    public static GUIFactory createOsSpecificFactory() {
        int sys = 0;
        if (sys == 1) {
            return new WinFactory();
        } else {
            return new OSXFactory();
        }
    }
}


  

適用性
在以下情況可以使用抽象工廠模式
一個系統(tǒng)要獨立于它的產(chǎn)品的創(chuàng)建、組合和表示時。
一個系統(tǒng)要由多個產(chǎn)品系列中的一個來配置時。
當你要強調(diào)一系列相關的產(chǎn)品對象的設計以便進行聯(lián)合使用時。
當你提供一個產(chǎn)品類庫,而只想顯示它們的接口而不是實現(xiàn)時

優(yōu)點
具體產(chǎn)品從客戶代碼中被分離出來
容易改變產(chǎn)品的系列
將一個系列的產(chǎn)品族統(tǒng)一到一起創(chuàng)建

缺點
在產(chǎn)品族中擴展新的產(chǎn)品是很困難的,它需要修改抽象工廠的接口

Abstract factory pattern-抽象工廠模式


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本1区2区| 国产色婷婷精品免费视频 | 91精品国产视频 | 波多野吉衣一区二区三区四区 | 欧美成人香蕉在线观看 | 亚洲国产天堂 | 奇米影| 中文字幕在线不卡精品视频99 | 久久艹在线 | 国产大片中文字幕 | 婷婷色网| 超级乱淫视频播放日韩 | 成人精品国产亚洲欧洲 | 奇米一区| 一级毛片免费在线观看网站 | 久久sese| 涩综合 | 羞羞在线| 成人影院在线免费观看 | 91视频福利| 九九色视频在线观看 | 欧美日韩一区二区综合在线视频 | 国产精品亚洲国产三区 | 99热自拍| 久久久精品久久久久三级 | a级黄片毛片 | 中文字幕一区精品 | 看全色黄大色黄大片爽一下 | 天堂一区二区在线观看 | 久久夜夜操妹子 | 桃色成人精品网站 | 看一级大片 | 日韩欧美精品一区二区 | 欧美做爱毛片 | 精品牛牛影视久久精品 | 国产精品久久久视频 | 狠狠色噜噜狠狠狠狠色吗综合 | 天天做天天爱夜夜爽女人爽宅 | www.亚洲| 久久久久久久免费视频 | 深夜在线网址 |