做完了圖書館維修管理系統,又接到乙個任務,就是給測試組的講一下我們合作開發過程中遇到的問題,以及心得體會,這也正好讓我們幾個開發的有機會能淨下心來好好的總結一下自己通過這個專案的收穫,總結完了還有人「檢查」一下學習成果是個好差事。
這次做專案因為是合作開發,對於「合作」這兩個字的理解有了很深的認識,要想提高工作效率,
svn的正確使用時必不可少的。這點可以參考我以前寫過的部落格
程式設計師必讀正確使用svn——輕鬆快樂合作開發
()合作開發的另乙個好處就是可以學習小組中其他人的優點,因為我們的系統不是很大,所以我有時間研究學習一下別人的模組,從中學到了不少的東西,今天我就給大家分享一下我對於封裝的心得體會。
首先帶大家複習一下最基本的概念——什麼事封裝?
每個物件都包含它能進行操作的所需要的所有資訊,物件不依賴其他物件來完成自己的操作
這句話是官方的解釋,但是對於剛剛入門的小菜來說靠簡單的讀,是永遠理解不了的。
然後我們又想封裝的好處?
良好的封裝能夠減少耦合。
類內部的實現可以自由修改。
類具有清晰的對外介面。
好處列出來了,如果是考試看到這三條可能已經是得滿分了。但是要想真正能理解,就要好好的體會了。
下面是我在專案中發現的幾個比較好的封裝給大家拿出來做個比較,幫助大家理解什麼是封裝。 例
1.根據條件查詢:
看**之前先想想自已以前寫的**,(根據條件查詢的**)
------
請思考
看**:(系統採用工廠加反射的三層架構)
public void binddata()
ds = bll.getlist(strwhere.tostring());
gridview.datasource = ds;
gridview.databind();
}
看完**,不知道大家有什麼想法,首先說說自己的想法,以前我一般都是只在
u層呼叫
b層的方法
b層呼叫
d層方法,最終的實現是在
d層,寫符合要求
sql語句,但是上面的這段**可以說是把查詢的條件寫在了業務層,然後我們看
d層的**如何寫:
**:
/// /// 獲得資料列表--韓義
///
/// 獲得資料列表--韓義
/// 獲得資料列表--韓義
public dataset getlist(string strwhere)
return dbhelpersql.query(strsql.tostring());
}
這樣有什麼好處呢?
我想大家應該也發現了。兩段**有兩個層次的封裝: 1.
對於繫結控制項這個操作封裝為乙個函式,這個函式可以重複使用,而且一旦有什麼變動都可以只修改這個函式。體現了封裝的好處一。 2.
現在我們的這個
d層的類基本上時萬能的了。你可以隨便的改業務(更改查詢的條件)而且可以怎麼實現的呢——使用stringbuilder類構件我們的字串,
sql語句的拼接轉移到了業務層,由具體的業務控制要查詢的條件。
看這段**我還想到,如果這段**用在機房收費系統的組合查詢中會有什麼樣的好處呢。我們通過stringbuilder類把需要新增的查詢條件都在
u層就組建好,可以減少判斷,如果是
3個組合條件,也僅僅是
3個簡單的
if語句,連
else
都沒有。不是也很簡單嗎?
但這緊緊是很簡單的乙個函式封裝,接下來我還會給大家介紹系統中的幾個例子,深入體會封裝。
專案總結 談談封裝(抽象工廠 反射 快取機制)
今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。背景交代 我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西 使用快取檔案。背景交代完畢。msdn上說 通常,應用程式可以將那些頻繁訪問的資料,以及那...
專案總結 談談封裝(抽象工廠 反射 快取機制)
今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。背景交代,我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西 使用快取檔案。背景交代完畢。msdn上說 通常,應用程式可以將那些頻繁訪問的資料,以及那...
專案總結 談談封裝(抽象工廠 反射 快取機制)
今天想給大家說的也是剛剛結束的專案中遇到的乙個優秀的封裝,當然也要拿出來給大家分享了。背景交代,我們的專案是乙個bs的專案,基本的架構是工廠模式三層,所以就用到了抽象工廠加反射,今天要給大家講的也就是這塊的東西 使用快取檔案。背景交代完畢。msdn上說 通常,應用程式可以將那些頻繁訪問的資料,以及那...