單例模式是類級別的,乙個類只能有乙個物件例項;
享元模式是物件級別的,可以有多個物件例項,多個變數引用同乙個物件例項;
享元模式主要是為了節約記憶體空間,提高系統效能,而單例模式主要為了可以共享資料;
1:單例模式
public class singleton
public static synchronized singleton getsingleton()
return singleton;
}public static void main(string args) }
2:享元模式
//享元模式是多個變數公用乙個物件例項 大大節約了記憶體空間 提高了系統效能 string類是final型別 就是使用了享元模式
//資料庫連線池 執行緒池也是享元模式的應用
public abstract class flyweight
//具體類 享元實現類
public class createflyweight extends flyweight
@override
public void operation()
public static void main(string args) }
//工廠方法類 維護乙個物件儲存池 享元工廠類
public class flyweightfactory ;
public flyweight getflyweight(object obj)
return flyweight;
}public int getflyweightsize()
public static void main(string args)
}
設計模式之享元模式,單例模式
單例模式 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。結構圖 注意多執行緒的單例。享元模式 享元的英文是flyweight,它是乙個來自於體育方面的專業用語,在拳擊 摔跤和舉重比賽中特指最輕量的級別。把這個單詞移植到軟體工程裡面,也是用來表示特別小的物件,即細粒度物件。flyweight...
單例模式,原型模式,享元模式
這三個模式為什麼放一起呢。都是減少建構函式多次被構造為目的產生的模式。也就是說 a a new a a b new a 這樣就兩次構造了這個物件 單例模式 在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 有乙個廚師 class c...
語言與模式 12享元模式
運用共享技術有效地支援大量細粒度的物件。抽象享元角色類 public inte ce flyweight public class concreteflyweight implements flyweight 外蘊狀態作為引數傳入方法中,改變方法的行為,但是並不改變物件的內蘊狀態。override ...