<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-46  評(píng)論-64  文章-2  trackbacks-0

    設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠

    Creational Pattern:

    *creates objects for you rather than having you instantiate objects directly

    *gives your program more flexibility in deciding which objects need to be created for a given case

     

    工廠模式有以下三種形態(tài):

    簡(jiǎn)單工廠(Simple Factory)模式:又稱靜態(tài)工廠方法(Static Factory Method)模式

    工廠方法(Factory Method)模式:又稱多態(tài)性工廠(Polymorphic Factory)模式

    抽象工廠(Abstract Factory)模式:又稱工具箱(Kit Toolkit)模式

     

    簡(jiǎn)單工廠模式其實(shí)是普通工廠模式的一個(gè)特例,今天就從這里開(kāi)始吧。

    其結(jié)構(gòu)可以簡(jiǎn)單地表示如下:


    SimpleFactory.jpg沒(méi)用
    Visio畫(huà),大家見(jiàn)諒呀


        我們從一個(gè)實(shí)際的例子來(lái)看這個(gè)簡(jiǎn)單工廠模式

    假設(shè)一個(gè)農(nóng)場(chǎng),專(zhuān)門(mén)向市場(chǎng)銷(xiāo)售各種水果,假設(shè)只提供良種的水果,蘋(píng)果和葡萄,我們?yōu)樗O(shè)計(jì)一個(gè)抽象類(lèi)Fruit,所有水果都必須實(shí)現(xiàn)這個(gè)接口

    package simple_Factory;
    //水果抽象出來(lái)的接口
    public interface Fruit {
        
    void grow();
        
    void harvest();
    }


    public class Apple implements Fruit {

        
    private int treeAge;

        
    public void grow() {
            log(
    "Apple is glowing");
            
        }


        
    private void log(String string) {
            System.out.println(string);        
        }


        
    public void harvest() {
            log(
    "Apple has been harvested.");
        }

        
        
    public int getTreeAge() {
            
    return treeAge;
        }


        
    public void setTreeAge(int treeAge) {
            
    this.treeAge = treeAge;
        }


    }


    public class Grape implements Fruit {

        
    private boolean seedless;
        
    public void grow() {
            log(
    "Grape is growing------");
        }


        
        
    public void harvest() {
            log(
    "Grape has been harvested.");
        }

        
    private void log(String string) {
            System.out.println(string);        
        }


        
    public boolean isSeedless() {
            
    return seedless;
        }


        
    public void setSeedless(boolean seedless) {
            
    this.seedless = seedless;
        }


    }


    public class OtherFruits implements Fruit {

        
    public void grow() {        
        }


        
    public void harvest() {        
        }


    }

     

    FruitFactory類(lèi),水果加工廠,根據(jù)需要(不同參數(shù)代表不同的水果需求)給市場(chǎng)供給水果。

     

    package simple_Factory;

    //水果加工廠,根據(jù)需要給市場(chǎng)供給水果
    public class FruitFactory {
        
    public static Fruit supplyFruit(String need)
        
    {
            
    if(need.equalsIgnoreCase("apple"))
                
    return new Apple();
            
    else if(need.equalsIgnoreCase("grape"))
                
    return new Grape();
            
    else
                
    return new OtherFruits();        
        }

    }

    測(cè)試方法:
    package simple_Factory;

    public class Test {

        
    /**
         * 
    @param args
         
    */

        
    public static void main(String[] args) {
            Fruit a 
    = FruitFactory.supplyFruit("apple");
            Fruit b 
    = FruitFactory.supplyFruit("Grape");
            Fruit c 
    = FruitFactory.supplyFruit("others");
            
            a.grow();a.harvest();
            b.grow();b.harvest();
            c.grow();c.harvest();
        }

    }


        自己弄懂和講給別人懂還是有很大差距的,第一篇文章雖然寫(xiě)好了,但是感覺(jué)不夠好,不知道能不能給初學(xué)者一點(diǎn)點(diǎn)幫助呢……

        自強(qiáng)不息,繼續(xù)努力!
    posted on 2006-02-21 22:03 jht 閱讀(2186) 評(píng)論(7)  編輯  收藏

    評(píng)論:
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-02-21 23:48 | 飛雪
    不錯(cuò)
    繼續(xù)加油!  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-02-22 08:29 | java哥哥
    寫(xiě)的挺好,繼續(xù)。  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-02-22 12:47 | david
    閻宏的書(shū)里講的例子吧  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-02-22 16:21 | steady
    《Java與模式》里的例子了  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-07-29 20:18 | 支票薄
    雖然見(jiàn)過(guò)
    但表達(dá)比原著更好。共勉!!!  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-08-12 19:49 | 謝謝樓主,寫(xiě)的不錯(cuò)
    謝謝樓主,寫(xiě)的不錯(cuò)!
    希望與樓主交流
    MSN:sboy824@hotmail.com
    QQ:43713757  回復(fù)  更多評(píng)論
      
    # re: 設(shè)計(jì)模式學(xué)習(xí)(一) 工廠模式之簡(jiǎn)單工廠 2006-11-01 16:53 | leo[匿名]
    怎么設(shè)置蘋(píng)果樹(shù)的年齡呢????????  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 日韩免费一级毛片| 国产成人精品免费视频大全| 亚洲最大黄色网址| 亚洲黄网在线观看| 67pao强力打造67194在线午夜亚洲| 亚洲AV无码国产精品麻豆天美| 国产亚洲精久久久久久无码| 亚洲国产三级在线观看| 亚洲AV无码成人专区片在线观看| 亚洲av永久无码精品漫画| 久久91亚洲精品中文字幕| 亚洲综合色一区二区三区小说| 亚洲理论片中文字幕电影| 亚洲成AV人综合在线观看| 中文字幕亚洲精品无码| 亚洲av午夜国产精品无码中文字| 疯狂做受xxxx高潮视频免费| 9久久免费国产精品特黄| 无码日韩精品一区二区免费暖暖 | 久久亚洲精品成人无码网站| 337p日本欧洲亚洲大胆艺术| 亚洲看片无码在线视频 | 亚洲成人午夜在线| 亚洲精品在线网站| 亚洲精品色播一区二区| 无码人妻一区二区三区免费视频 | 久久久精品国产亚洲成人满18免费网站| 国产美女视频免费观看的网站| 99久久国产精品免费一区二区 | 日韩在线观看视频免费| 中文字幕乱码一区二区免费| 亚洲免费在线视频观看| 成年人网站在线免费观看| 免费一级毛片不卡不收费| 久久精品国产亚洲网站| 亚洲xxxxxx| 日韩在线视频播放免费视频完整版 | 久久久久一级精品亚洲国产成人综合AV区 | 免费看AV毛片一区二区三区| 国产成人亚洲综合无码| 亚洲日韩区在线电影|