我的Blog我做主^_^

          走向一條通往JAVA的不歸路...

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            64 隨筆 :: 68 文章 :: 77 評(píng)論 :: 0 Trackbacks

          一、創(chuàng)建模式

           

          創(chuàng)建模式分為類的創(chuàng)建模式和對(duì)象的創(chuàng)建模式兩種:

          1、  類的創(chuàng)建模式:類的創(chuàng)建模式使用繼承關(guān)系,把類的創(chuàng)建延遲到子類,從而封裝了客戶端將得到哪些具體類的信息,并且隱藏了這些類的實(shí)例是如何被創(chuàng)建和放在一起的。

          2、  對(duì)象的創(chuàng)建模式:而對(duì)象的創(chuàng)建模式則把對(duì)象的創(chuàng)建過(guò)程動(dòng)態(tài)地委派給另一個(gè)對(duì)象,從而動(dòng)態(tài)地決定客戶端將得到哪些具體類的實(shí)例,以及這些類的實(shí)例是如何被創(chuàng)建和組合在一起的。

           

          A、 簡(jiǎn)單工廠模式Simple Factory<Static Factory Method靜態(tài)工廠方法>

           

                 簡(jiǎn)單工廠模式就是由一個(gè)工廠類根據(jù)傳入的參量決定創(chuàng)建出哪一種產(chǎn)品類的實(shí)例。

                 實(shí)例:      

                 商店-----------à銷貨員[工廠] -----------à水果[抽象產(chǎn)品]<蘋果[產(chǎn)品一]、梨[產(chǎn)品二]、草莓[產(chǎn)品三]>

                 用戶告訴銷貨員水果的名稱,銷貨員通過(guò)水果名稱找到相應(yīng)的水果;

                 interface水果 (){

                        價(jià)格;

                        重量;

                        產(chǎn)地;

          }

          Class蘋果() implements 水果{

                        蘋果價(jià)格;

                        蘋果重量;

                        蘋果產(chǎn)地;

                        蘋果品種;

                 蘋果采摘日期;

          }

          Class () implements 水果{

                 梨價(jià)格;

                 梨重量;

                 梨產(chǎn)地;

                 梨品種;

                 含糖量;

                 梨采摘日期;

          }

          Class 草莓() implements 水果{

                 草莓價(jià)格;

                 草莓重量;

                 草莓品種;

                 ……

                 草莓采摘日期;

          }

          Class shop<銷貨員>(){

          //創(chuàng)建靜態(tài)工廠

          Public static 水果 factory(String 水果名稱) throws 水果未存在異常{

                               If(“蘋果”.equals(水果名稱)){

                                      Return new 蘋果();

          }else If(“”.equals(水果名稱)){

                        Return new ();

          }else If(“草莓”.equals(水果名稱)){

                        Return 草莓();

          }else{

                        Throw 水果未存在異常;

          }

          }    

          }

           

          獲取水果:

           

          Try{

                 蘋果 A = Shop<銷貨員>.factory(“蘋果”);

                 A = Shop<銷貨員>.factory(“”);

          }catch(Exception e){

                 System.out.println(“水果未存在異常……”);

          }

           

          結(jié)構(gòu)圖:

           

          工廠<銷貨員>

          具體產(chǎn)品<蘋果、梨>

          抽象產(chǎn)品<水果>

           

          工廠<銷貨員>

          具體產(chǎn)品<蘋果、梨>

          抽象產(chǎn)品<水果>

          學(xué)習(xí)中......

           

           

           

           



          posted on 2007-04-05 00:32 java_蟈蟈 閱讀(245) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 开鲁县| 洛南县| 清徐县| 遂平县| 嘉黎县| 邮箱| 维西| 齐齐哈尔市| 梧州市| 宁晋县| 景谷| 尖扎县| 灵川县| 来凤县| 阜阳市| 廊坊市| 库尔勒市| 石首市| 文水县| 石渠县| 分宜县| 两当县| 南澳县| 伊通| 赣州市| 彭山县| 鸡泽县| 昆山市| 蓝山县| 山丹县| 富川| 若羌县| 金秀| 太保市| 托克逊县| 彰化市| 岑巩县| 枝江市| 乾安县| 沧州市| 台湾省|