大話設計模式UML實現

幾年前看的《大話設計模式》從書中學到了不少,而且講解詼諧幽默。感謝作者能出版這樣的書籍。

現在剛使用UML,這篇文章幫我快速入門《

聊聊.net程序設計——淺談使用VS2010建模拓展(上)

從而想把其中的一些設計模式用UML做出來
爲了有一個清晰的結構,一種設計模式放入一個UML類圖;並且要在一個命名空間下(方便生成的類庫改寫)。爲了實現這樣的效果在模型中加入了包


生成後的類庫結構


針對在UML模型的製作過程中遇到的問題做以下說明

策略模式時  CashSuper 與 CashContext  聚合後使用系統默認設置時生成的代碼

namespace DesignPattern.Strategy
{
	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;

	public class CashContext
	{
		public virtual CashSuper cs
		{
			get;
			set;
		}

		public CashContext(CashSuper csuper)
		{
		}

		public virtual double GetResult(double money)
		{
			throw new System.NotImplementedException();
		}

	}
}

這樣的代碼並不是想得到了,不得不進行設置


第二角色  Is Derived 設置爲True, Visibility 設置爲private , 可導航設置爲True。方法GetResult(double money) 操作  Is Leaf 設置爲True


得到代碼

	using System;
	using System.Collections.Generic;
	using System.Linq;
	using System.Text;

	public class CashContext
	{
		private CashSuper cs
		{
			get;
			set;
		}

		public CashContext(CashSuper csuper)
		{
		}

		public double GetResult(double money)
		{
			throw new System.NotImplementedException();
		}

	}

當進行到代理模式時,接口無法正常生成代碼。不得不再建立了一個模型項目結構基本相同只是包做了改變,所以命名空間也改變了



在製作到“Builder”模式時窗口無法顯示繪製的圖形,查資料得到

窗體重繪時,引發Paint事件,應該在Paint事件中畫圖,窗體改動和重啓仍然有圖形。如果放在Load事件中,繪圖後隨着窗體啓動消失了。
所以加入了按鈕,效果圖



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章