項目開發(fā)中的底層對象抽離
主要包含下面這些情況:
1、Lable控件的對齊方式,是否在Label控件的Text***加上冒號,也就是“:”;
2、ListLiew控件列頭文字對齊方式、是否顯示網(wǎng)格線;
3、……
一個項目多個人開發(fā),自然會出現(xiàn)多種不同的風格,但是蘿卜白菜,各有所愛,***做出來的軟件是樣式萬千啊,這樣做出來的東西讓人用了如何爽的起來啊,用戶還不得開口罵人啊?
但是一個軟件下來,控件都有幾百個,如何一個一個的去改風格啊,到時候軟件是改好了,用戶不罵人了,估計程序員開罵了,nnd,這是個什么事兒???
有時候感覺懶人在這個世界上還真有他的一片天空,如果能夠一個方法來解決所有的這些問題該有多好啊,想著想著,眼前一亮,還真有,如果在每個UserControl,或者Form的PreRender方法中進行一次多所有控件的遞歸遍歷,然后對相關(guān)的控件做相應的處理,大概代碼如下:
- foreach(UserControl ctrl in this.Controls)
- {
- if(ctrl is Label).....
- if(ctrl is ListView).....
- }
這樣似乎從一定程度上簡化了程序員修改代碼的難度,從一個個的去修改控件的屬性,變?yōu)橥ㄟ^代碼循環(huán)處理來修改控件的屬性,但是隨之而來又會面臨一個問題:本身遞歸就是一個很影響性能的操作,但是如果有控件嵌套使用的話,會出現(xiàn)對同一個控件進行多次控件遍歷的情況,這樣的話對性能的影響就更大了。
有沒有辦法可以躲開重復遍歷的問題嗎?答案是:有的!
如果我們寫一個UserControl和一個Form的基類,然后只在這兩個基類中編寫控件遍歷處理的操作,然后讓所有的UserControl和Form都繼承這兩個基類,這樣完全可以解決前面的難題,同事代碼量也會減少很多。
總結(jié):到這里,我想文章的意思應該與題目“項目開發(fā)之底層對象抽離”相呼應了,那就是:為了便于對自己寫的所有代碼做一個統(tǒng)一處理,***的方法就是盡量將同一類對象抽象出來寫一個基類,然后在基類中來做統(tǒng)一處理即可。想想我們平時都會有哪些對象是可以抽離出來的呢,我這里舉幾個例子,或許還有很多,留待慢慢發(fā)現(xiàn):
1、所有UserControl基類
2、所有Form基類
3、實體類基類;
4、實體類字段基類;
5、所有功能組件;
原文鏈接:http://www.cnblogs.com/Juvy/archive/2012/02/21/2361878.html