簡單列出這幾個設計模式所包含的部分html
1. 簡單工廠模式設計模式
1.1 基類函數
1.2 方法類:經過基類,實現業務的方法類this
1.3 業務類:根據業務傳遞過來的字符,判斷須要建立對應的方法類設計
1.4 前臺:前臺調用業務類,傳遞1.3所需的字符server
2.工廠模式htm
2.1 接口:建立統一的工廠操做接口(這個工廠須要生產的東西,好比對象,或者實現的方法)對象
2.2 基類接口
2.3 方法類:經過基類,實現業務的方法類,ip
2.4 業務類:將不用業務須要的字符,建立實現接口的業務類,業務類調用該業務的方法
2.5 前臺:前臺調用業務類
3.抽象工廠
3.1 接口:建立統一的工廠操做接口(這個工廠須要生產的東西,好比對象,或者實現的方法)
3.2 基類
3.3 方法類:經過基類,實現業務的方法類,
業務類:將不用業務須要的字符,建立實現接口的業務類,這裏不使用new來直接操做方法類,經過反射來實現對象的建立。
private static readonly string AssemblyName = "AdstractFactory"; private static readonly string db = "Sqlserver"; public static IUser CreateUser() { string className = AssemblyName + "." + db + "User"; return (IUser)Assembly.Load(AssemblyName).CreateInstance(className); }
3.4 前臺:前臺調用業務類
4.原型模式
原型模式包含兩部分淺複製和深複製
4.1 淺複製:在本類中提供一個方法Clone,若是類中全是值類型,則只需MemberwiseClone淺複製就行
/// <summary> /// 淺複製 /// </summary> /// <returns></returns> public object Clone() { return this.MemberwiseClone(); }
4.2 深複製:本類中若是存在引用類型,則需深複製,在本類中提供一個私有構造函數,複製本類的引用類型,提供一個Clone,所有從新複製本類
private Prototype(Hobby _hobby) { this.Hobby = (Hobby)_hobby.Clone(); } /// <summary> /// 深複製 /// </summary> /// <returns></returns> public Prototype Clone() { Prototype pro=new Prototype(this.Hobby); pro.ID = this.ID; pro.Name = this.Name; return pro; }
5.建立者模式
5.1 建立者接口:建立須要實現的方法(工序的過程)
5.2 方法類:實現接口
5.3 指揮者:根據產品特色,完成組裝,對外提供可選的產品。
建立者模式和工廠很類似,不一樣的是建立者模式,有一個指揮者,最後提供一個結果
6.單例模式
6.1 懶漢式單例:使用雙層判斷,建立全局惟一的訪問變量
public static Singleton Instance { get { if (_Instance == null) //雙重鎖定 { lock (syncRoot) { if(_Instance==null) _Instance = new Singleton(); } } return _Instance; } }
6.2 餓漢式單例:使用公共語言時,在初始化的時候用readonly,和static來建立對象
private static readonly Singleton01 _Instance=new Singleton01(); private Singleton01() { } public static Singleton01 Instance { get { return _Instance; } }