UML—時序圖重思考


    不同的學習階段,對UML的學習有不同的理解,現在有些明白老師為什么讓自己在不懂的時候繼續往下學的道理了,有些知識不經歷過一些實踐是不會引起注意的。

【以前的圖】

        這是以前做的圖:                                     沒有學過分層思想之前,知識簡單的理解,時序圖是對象之間傳遞消息的順序,強調的時間順序。上圖是自己針對對vb版機房收費系統上下機做的,簡單的系統,簡單的代碼,然后就是簡單的圖。

【現在的圖】

      以下是自己針對七層版.net機房收費系統的上機所做的圖:

        相比較第一張圖,做了許多災難性的修改作業以及自己的一些思考:
        1.對生命線的思考。第一遍學習只是簡單瀏覽了一遍時序圖中的圖符,了解了它是什么名字,對它所起到的功能卻沒有做出深入研究。生命線的截斷就意味着一個方法、函數、程序的結束。
        七層的上機中,我對外觀的簡單理解是:B層一類一方法,facade類是對B層方法的重新排列組合;B層是一個個零部件,facade就是這些零部件組裝起來的汽車。所以當B類的一個方法從建立到傳回一個函數,就完成了一個“零部件”的生產,它的“生命”也就終結了,例如從Bll這個對象實例化的cardIsExit()方法;但facade類是由好幾個方法組件而成的,它們共同完成上機這個操作,因此它必須在輸出給U層允許上機的boolean值時它的生命才算完結。
       2.時序圖的起始是由用例來觸發的。用例圖的最重要的功能之一是:對用例圖對需求的表達做出更精細化,更層次化的表達。因此我們不應該忽略用例在時序中所起到的舉足輕重的位置。
       3.重用代碼的提取和返回值問題。七層設計中,一個窗體的實現對同一個B層方法不止一次的使用。就像上面遇到的B層兩次返回了對泛型集合list(entity.En_user),就可以考慮在facade層建立一個provide函數,返回一個就可以供給兩個方法使用。                                               
        在上面的上機流程圖種我們看到有許多邏輯判斷,當從底層數據庫返回到B層的數據通常采用兩種,一個是泛型集合,一個是布爾值。比如判斷用戶存不存在,所剩余額都要訪問student表,如果前者使用的是Boolean值,還得從Facade層到D層重新一步步建立相同的方法。如果一開始就返回的是泛型集合的話,可以在facade層做一下判斷,集合中不存在數據,就已經能證明該用戶不存在了。         如此思考問題的話,我們的B層類一定會大大減少的,同時也能讓我們的系統運行大大減少開銷。

【總結】

        不同的學習階段有不一樣的思考,這也在驗證着我們的成長步伐。期待接下來的學習旅程。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com