項目開發之底層對象抽離


        這篇文章的出現源於跟同事的一次爭吵,其中爭吵的主題是關於軟件中一些控件的顯示風格的問題,主要包含下面這些情況:

        1、Lable控件的對齊方式,是否在Label控件的Text最后加上冒號,也就是“:”;

        2、ListLiew控件列頭文字對齊方式、是否顯示網格線;

        3、……

        一個項目多個人開發,自然會出現多種不同的風格,但是蘿卜白菜,各有所愛,最后做出來的軟件是樣式萬千啊,這樣做出來的東西讓人用了如何爽的起來啊,用戶還不得開口罵人啊?

        但是一個軟件下來,控件都有幾百個,如何一個一個的去改風格啊,到時候軟件是改好了,用戶不罵人了,估計程序員開罵了,nnd,這是個什么事兒啊?

        有時候感覺懶人在這個世界上還真有他的一片天空,如果能夠一個方法來解決所有的這些問題該有多好啊,想着想着,眼前一亮,還真有,如果在每個UserControl,或者Form的PreRender方法中進行一次多所有控件的遞歸遍歷,然后對相關的控件做相應的處理,大概代碼如下:

1  foreach(UserControl ctrl  in  this.Controls)
2 {
3      if(ctrl  is Label).....
4      if(ctrl  is ListView).....
5 }

        這樣似乎從一定程度上簡化了程序員修改代碼的難度,從一個個的去修改控件的屬性,變為通過代碼循環處理來修改控件的屬性,但是隨之而來又會面臨一個問題:本身遞歸就是一個很影響性能的操作,但是如果有控件嵌套使用的話,會出現對同一個控件進行多次控件遍歷的情況,這樣的話對性能的影響就更大了。

        有沒有辦法可以躲開重復遍歷的問題嗎?答案是:有的!

        如果我們寫一個UserControl和一個Form的基類,然后只在這兩個基類中編寫控件遍歷處理的操作,然后讓所有的UserControl和Form都繼承這兩個基類,這樣完全可以解決前面的難題,同事代碼量也會減少很多。

 

總結:到這里,我想文章的意思應該與題目“項目開發之底層對象抽離”相呼應了,那就是:為了便於對自己寫的所有代碼做一個統一處理,最好的方法就是盡量將同一類對象抽象出來寫一個基類,然后在基類中來做統一處理即可。想想我們平時都會有哪些對象是可以抽離出來的呢,我這里舉幾個例子,或許還有很多,留待慢慢發現:
        1、所有UserControl基類
        2、所有Form基類
        3、實體類基類;
        4、實體類字段基類;
        5、所有功能組件;

 

ASP.NET開發技術交流群: 67511751

另:本人想找一些志同道合的人,可以是跟我一起交流技術的,或者是給予鼓勵和支持的,非誠勿擾,謝謝!

QQ:1054930154

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM