AgileEAS.NET平臺開發實例-藥店系統-UI層重構技巧及其餘

開篇

        上篇咱們講述了UI層的分析,那麼本篇咱們就講述下咱們在作CS應用程序的過程當中的一些技巧性的東西,可能我這裏總結的只是我再開發本藥店系統中應用的到的一些小設計模式

技巧,並不表明所有,確定還有不少的其餘方面的技巧,你們均可以分享一下,我這裏提出額也談不上技巧,更多的是使用設計模式方面的總結吧。網站

        一、提高父類spa

        二、分離職責。.net

        三、抽象公共設計

大綱

         一、將每一個子類都用到的方法或屬性進行提高到基類中。3d

         二、抽取公共方法。orm

提高父類

        關於這個技巧我想你們都會是比較清楚的,就是將子類中都有的屬性或者方法等放在一個基類中,而後具體的子類繼承自該類,書寫一些具備自身特性的功能,這樣可以對象

充分發揮面向對象的繼承技術來達到複用的目的,不但提升了程序的可維護性,並且提升了可讀性。我想你們對這個都很熟悉。blog

        下面咱們就來看看咱們在本藥店系統是如何來作的:繼承

         image

         上面咱們能看到整個系統的核心就是基於藥店的庫存管理爲主線進行具體的不一樣的業務流線來展開的,咱們來總結下這些模塊須要具有的功能,咱們這裏進行抽象。

          image

          這樣,咱們經過新建一個UserControl控件將這類控件都提供上述的功能。

          image

         二、這樣咱們在具體的窗體控件中只須要繼承自該用戶控件便可:

          image

         三、咱們來看看基類中定義的打印報表方法的使用:

          image

          這樣會減小咱們不少沒必要要的工做,而且提升了可維護性,下降了重複代碼的出現。

抽象控件綁定

        今天有不少的同仁給我建議,讓我把數據綁定控件進行抽象,這樣可以減小不少重複代碼的出現,不錯,的確是這樣的,這樣也有不少的好處,防止由於多個地方的副本

出現後就要同步修改不少的地方,這樣無疑會加大咱們的工做量,而且也會讓咱們的維護的工做量大增。咱們這裏就來總結下藥店系統中的一些公用的控件綁定方法抽象。

         一、將經常使用的下拉列表的綁定書寫出通用的方法。固然這裏沒有徹底的抽象,只是說是把經常使用的方法寫到一個類中,經過靜態方法的形式來訪問。

         image

         二、由於藥品類型在多個模塊中出現,而且每一個模塊中都是下拉列表的形式展現,因此咱們這裏能夠將這些多於2處的綁定,抽象出公共的綁定方法,咱們來看看該方法的

具體實現。也是比較的簡單。

         image

        三、咱們來看看以下的二個方法:

         image

         image

         四、咱們能夠將上述的紅色部分進行抽象成單獨的靜態方法:

          image

         接着咱們來看看後2個方法中具體的調用步驟。

          image

          image

          這樣就達到了複用的目的,下面咱們來看看GridView的綁定和新增數據列時咱們均可以寫一些通用的方法。

          image

          咱們來看看抽象成泛型方法的具體實現類:

          image

          下面咱們來看看DataGridView的數據實體信息編輯後,若是不從新綁定來更新列表中的內容信息:

          image

          咱們來看看原來的Datagridview的行信息更新的方法。

           image

          使用上述的公共方法後,代碼的調用以下:

          image

          無疑經過上述的方式會下降不少出錯的可能性,而且提升了代碼的可維護性。

總結

        上面咱們分享了一些簡單的界面開發過程當中的一些通用性的設計和抽取公共方法和提高父類等一些重構中的基本技巧,但願能對你們有必定的幫助,固然因爲本人的水平

有限,可能還有更好的方法或者更好的解決問題的思路,還請你們指出,謝謝。

藥店系統源碼

        download3

更多交流

官方博客:http://www.smarteas.net/

官方網站:http://www.agilelab.cn/

若是您在使用AgileEAS.NET開發平臺中有什麼問題,請使用以下幾種聯繫方式或者溝通方式。

一、郵箱方式:

魏瓊東: mail.james@qq.com 手機:18629261335 博客:http://eastjade.cnblogs.com/

殷長波:549558408@qq.com 博客: http://www.cnblogs.com/onmyway/

何戈洲:hegezhou_hot@163.com 博客:http://www.cnblogs.com/hegezhou_hot/

二、QQ交流羣:

AgileEAS.NET平臺交流羣:120661978(超級羣)[新建]  AgileEAS.NET平臺交流羣:125643764(高級羣)[新建]  AgileEAS.NET平臺交流羣:147168308(高級羣)[新建]

相關文章
相關標籤/搜索