首頁 »
2006/03/16

DELPHI2006.ECOIII的狀態機案例

D2006總體上來說,我是非常滿意的。尤其是我試用了裡面ECO 3後,在UML設計的時候,功能更powerful,操作更方便,取消了原來強制需要指定連接的End名字所帶來的不便。不是很瞭解ECO或者MDA(基於模型驅動開發)的朋友,看下文章後,也應該會對MDA有興趣的。

D2006總體上來說,我是非常滿意的。尤其是我試用了裡面ECO 3後,在UML設計的時候,功能更powerful,操作更方便,取消了原來強制需要指定連接的End名字所帶來的不便。不是很瞭解ECO或者MDA(基於模型驅動開發)的朋友,看下文章後,也應該會對MDA有興趣的。 切入正題,ECO 3中最大的功能變化是增加了UML的State機設計。下面的內容,我將不對ECO中的ECO Class的關聯啊什麼的做解釋,僅僅針對State機做一個例子。如果大家對ECO有興趣,我有空的時候可以將ECO的更多有意思的東西寫出來給大家分享。 首先新建一個ECO Asp .net application with C# Builder,然後在ECOPageage的UML視圖上放入一個ECO Class叫老師Teacher,裡面隨便亂加一些屬性啊、函數啊等等的。亂加的內容,大家不用仔細看。主要用到一個Cost屬性,為老師的得分,還有一個Go1的函數可以被呼叫。圖: 然後就是創建這個Teacher的State視圖(一個class可以有n個視圖的,通過指定stateattribute來顯示)。下面是圖:圖的意思是。當Teacher在Active的狀態時,可以呼叫它的Go1方法進行,在通過了Check狀態後(check中可以做很多事情,我這裡空著沒寫),經歷下面一組OCL語言的判斷:如果cost大於等於60分就到OK狀態,在OK狀態的入口點執行ECO Action Language(OCL的擴展語言)加10分,最後返回Active狀態;如果小於60分就要被無情的阿叉掉了。 borland的一個視頻裡是一個12歲小女孩用eco自己開發了一套程序,這個非常簡單和弱智的建立GUI和數據連接的過程我就不寫了,大家可以自己想像下。下面是程序運行的效果和部分代碼。 首先是增加兩個老師,我給他們的cost分別是80分和50分 AddNew按鈕是新增老師用的,以下是AddNew的代碼: 先拿張老師開刀,看看張老師在執行Go1後的結果。 以下準備點張老師的Go1圖: Go1按鈕的代碼: 由於張老師是80分,大與60的,在執行Go1後,被加了10分: 現在是王老師,我給他50分,在執行了他的Go1後,被無情的阿叉掉了。。。沒了 OK,展示結束!整個程序,我幾乎只寫了前面我貼出來的兩段代碼,不超過10行,但是已經完成了一個我胡扯出來的業務邏輯。ECO的魅力遠不止與此,我寫的只是其中很小一部分的功能,今後我有時間,會寫一些文章來介紹ECO。 註釋:ECO -- Enterprise Core Object ,讀「哎扣」,BDS 2006中支持C#和Delphi.net的 MDA-基於模型驅動的開發,通過UML建模來實現程序的企業邏輯的自動建立和數據庫的O/R Mapping OCL--對像約束語言,UML設計標準中的一個重要組成部分,其語法由世界UML組織制定,是不依賴與任何平台的。



客製化ECO-OCL←上一篇 │首頁│ 下一篇→ECOIII實作WEB ASP.NET 討論區
本文引用網址: