總網頁瀏覽量

2012年5月20日 星期日

JAVA 設計模式


JAVA23種設計模式

複合(composition)
新的class是由既有class的形式,並加入新程式碼
即在新的class中,宣告舊的class物件,並可以使用到舊class內的資料成員與方法

繼承(inheritance)

委任(delegation)
介於繼承與合成之間的關係,將成員物件置於所建立的class(合成),但又將該成員物件的所有method都放到新的class(繼承)

單例設計:
保證物件唯一,提供給其他類別來訪問,所以由自己建立,提供物件來保證唯一

流程:
1.          私有建構子
2.          創建本類物件
3.          提供方法返回物件給對外訪問

Single類別一載入就創建物件
class Single(){
        private single(){}   //私有建構子
        private static Single mSingle = new Single();
        public static Single getInstance(){
        return mSingle;
}
}

物件延遲加載,在多執行緒下可能會發生問題
class SIngle{
        private Single(){}
        private static Single mSingle = null;
        public static Single getInstance(){
        if(mSingle == null){
        mSingle = new Single();
return mSingle;
}
}
}

改良
class SIngle{
        private Single(){}
        private static Single mSingle = null;
        public static Single getInstance(){
if(mSingle == null){
                sychronized(Single.class){
                if(mSingle == null){
                        mSingle = new Single();
return mSingle;
}
}
}
}
}
裝飾設計模式:
當想要對已有的對象進行功能增強時可以定義類別,將已有的物件傳入,基於已有的功能,並提供加強功能,此自定義的類別稱為裝飾類別。裝飾類通常會通過建構子方法接收被裝飾的物件,以被裝飾的物件為基礎,提供更強功能
裝飾模式比繼承靈活,降低了類與類之間關係,因為其增強已有物件,其具備的功能和已有的是相同,只不過提供了更強的功能,所以裝飾類和被裝飾類通常是都屬於同一個體系中的。

沒有留言:

張貼留言