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

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

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

    隨筆-19  評論-2  文章-1  trackbacks-0

      <java與模式> ---電子書

    抽象工廠模式:page171 14

     

    抽象工廠的用意是使客戶端在不必指定產品的具體的情況下創建多個產品族中的產品對象;

    抽象工程模式是對象的創建模式。

    在什么情況下用抽象工廠模式:

    1 一個系統不應當依賴產品類實例如何創建、組合和表達的細節,這對與所有形態的工廠模式都是重要的。

    2、這個系統的產品有多于一個的產品族,而系統只消耗其中某一族的產品

    3、同屬于一個產品族的產品是在一起使用的,這一約束必須在系統的設計中體現出來

    4、系統提供一個產品類的庫,所以的產品以同樣的接口出現,從而使客戶端不依賴于實現。

     

    擴展:

    1、產品的等級結構擴展,也就是當在增加一個平行等級新的產品時,抽象工程不支持“開—閉”原則

    2、在增加新產品族的時,支持開-閉原則。

     

    問題:為什么上面的抽象工廠和抽象產品沒有依賴關系呢?(在工廠方法模式中)在這里我們同樣用了抽象產品的接口作為抽象工廠的返回接口呀!

    15 單例模式 page201

    單例模式的要點:

    1、  某個類只可以有一個實例

    2、  該類必須自行創建實例

    3、  它必須自行向整個系統提供這個實例

     

    一、 漢式單例類

    該類自己含有一個實現自己實例的靜態方法,同時為了不讓外界創建實例,則它的構造方法必須是私有的。

    代碼測試:

           class EagerSimple{

                  private static final EagerSimple eager = new EagerSimple();

                  private EagerSimple{}

                  public static EagerSimple getInstance(){

                         return eager;

    }

    }

          

    二、懶漢式單例類

    它也餓漢式單例類不同的是,只有當自己被引用的時候,自己才被實例化。結構圖與餓漢式單例類一樣的。

     

    代碼測試:

     

    class LanSimple{

           private static LanSimple simple= null;

           private LanSimple(){}

           synchronized public static LanSimple getInstance(){

                  if(simple == null)

                         simple = new LanSimple();

                  return simple;

    }    

    }

    餓漢式單例類與懶漢式單例類的區別是:在時間和反映上說,餓漢式要比懶漢式好,但是從資源利用上則餓漢式要好。

     

     

    雙重檢查成例的“懶漢式”單例類:

    class LazySimple{

           private LazySimple(){}

           private static LazySimple lazy = null;

          

           public static LazySimple getInstance(){

                  if(lazy == null){

                         synchronized(lazy){

                                if(lazy == null){

                                       lazy = new LazySimple();

                                }

                         }

                  }

                  return lazy;

           }

    }

    這個代碼看上去并沒有步合理之出,而且我認為還相當有意義,可是為什么說在java中就不對呢?不能夠使用呢?問題在哪里?

    posted on 2005-07-30 20:59 sky 閱讀(179) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品免费久久久久国产一区| 亚洲精品国产suv一区88 | 国产亚洲精品VA片在线播放| 最近免费中文字幕大全高清大全1| 亚洲中文字幕无码一区| 伊人免费在线观看高清版| 久久亚洲精品视频| 日韩免费视频一区二区| 亚洲av成人无码久久精品 | 福利免费在线观看| 亚洲国产精彩中文乱码AV| 99久久人妻精品免费二区| 亚洲黄色在线网站| 成年女人男人免费视频播放| 亚洲日韩AV一区二区三区中文 | 国产日产亚洲系列| 日韩精品人妻系列无码专区免费 | 亚洲成人在线网站| 无码囯产精品一区二区免费| 亚洲理论在线观看| 精品剧情v国产在免费线观看| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 性做久久久久免费看| 国产精品1024在线永久免费 | 亚洲视频在线观看2018| 国内精品免费视频自在线| 激情吃奶吻胸免费视频xxxx| 国产亚洲精品高清在线| 久久午夜伦鲁片免费无码| 亚洲日韩AV一区二区三区四区 | 杨幂最新免费特级毛片| 亚洲色成人WWW永久网站| 四虎免费影院ww4164h| 精品久久久久亚洲| 久久亚洲精品AB无码播放| 永久久久免费浮力影院| a毛片免费全部播放完整成| 67194在线午夜亚洲| 亚洲日韩中文字幕在线播放| 免费视频爱爱太爽了| 四虎一区二区成人免费影院网址|