【自我評價】
就要開始重構機房了,腦子裡一片亂糟糟的感覺,有些措手不及。我忽然想起《致青春》的一句經典台詞“天空沒有留下痕迹,但鳥兒已經飛過。”可是,對於前面已經學過的知識,我都不太確定“鳥兒真的飛過了嗎?”好糾結呀!
什麼“軟體工程”啦?腦子就剩下“文檔”兩個字;
什麼“UML”啦?腦子裡就剩下“九種圖”,重要的要數:使用案例圖、類圖、時序圖。至於類圖是怎麼抽象的,現在還不是很清楚的樣子。
什麼“設計模式”啦?我貌似只記得29個小故事;
什麼“三層架構”啦?就是UI-BLL-DAL,外加Model實體類。
……
對於知識的理解有種似懂非懂的感覺,卻沒有辦法用自己的語言來表達清楚……
【剪不斷,理微亂】
下面的這張圖主要是重構機房前的準備工作,看起來有些亂,是因為我正在整理自己的思路,貌似“耦合性”很高的嘛O(∩_∩)O~
【學習前提】
介紹一下重構機房的所需的學習前提:
軟體工程
軟體工程是研究和應用如何以系統性的、正常化的、可定量的過程化方法去開發和維護軟體,以及如何把經過時間考驗而證明正確的管理技術和當前能夠得到的最好的技術方法結合起來的學科。它涉及到程式設計語言、資料庫、軟體開發工具、系統平台、標準、設計模式等方面。
UML整合模組化語言
整合模組化語言(UML,Unified Modeling Language)是非專利的第三代建模和規約語言。UML是一種開放的方法,用於說明、可視化、構建和編寫一個正在開發的、物件導向的、軟體密集系統的製品的開放方法。UML展現了一系列最佳工程實踐,這些最佳實務在對大規模,複雜系統進行建模方面,特別是在軟體架構層次已經被驗證有效。
1、使用案例圖,從使用者角度描述系統功能,並指出各功能的操作者。
2、靜態圖 (Static diagram),包括類圖、對象圖和包圖。
3、行為圖(Behavior diagram),描述系統的動態模型和組成對象間的互動關係。行為圖包括:狀態圖、活動圖表、順序圖和共同作業圖表。
4、互動圖(Interactive diagram),描述對象間的互動關係。
5、實現圖 ( Implementation diagram ),包含構件圖、部署圖
設計模式
設計模式是對軟體設計中普遍存在(反覆出現)的各種問題,所提出的解決方案。設計模式並不直接用來完成代碼的編寫,而是描述在各種不同情況下,要怎麼解決問題的一種方案。
物件導向設計模式通常以類型或對象來描述其中的關係和相互作用,但不涉及用來完成應用程式的特定類型或對象。設計模式能使不穩定依賴於相對穩定、具體依賴於相對抽象,避免會引起麻煩的緊耦合,以增強軟體設計面對並適應變化的能力。
並非所有的軟體模式都是設計模式,設計模式特指軟體“設計”層次上的問題。還有其它非設計模式的模式,如架構模式。同時,演算法不能算是一種設計模式,因為演算法主要是用來解決計算上的問題,而非設計上的問題。
三層架構
三層架構(3-tier architecture) 通常是將整個業務應用劃分為:表現層(UI)、商務邏輯層(BLL)、資料訪問層(DAL)。區分層次的目的即為了“高內聚,低耦合”的思想。
DataSet
DataSet是ADO.NET的中心概念。可以把DataSet當成記憶體中的資料庫,DataSet是不依賴於資料庫的獨立資料集合。所謂獨立,就是說,即使斷開資料鏈路,或者關閉資料庫,DataSet依然是可用的,所以DataSet實際上可以容納具有複雜關係的資料,而且不再依賴於資料庫鏈路。正是由於DataSet才使得程式員在編程時可以屏蔽資料庫之間的差異,從而獲得一致的編程模型。
DataTable
DataTable 是一個臨時儲存資料的網格虛擬表(表示記憶體中資料的一個表。)。DataTable是 ADO.NET 庫中的核心對象。它可以被應用在 VB 和 ASP 上。它無須代碼就可以簡單的綁定資料庫。它具有微軟風格的使用者介面。
其他使用DataTable的對象包括DataSet和DataView。
DataSet支援多表、表間關係、資料約束等,和關聯式資料庫的模型基本一致。
SqlHelper
SqlHelper用於簡化你重複的去寫那些資料庫連接(SqlConnection), SqlCommand,SqlDataReader等等。SqlHelper 封裝過後通常是只需要給方法傳入一些參數如資料庫連接字串,SQL參數等,就可以訪問資料庫了,很方便。
SqlHelper 類用於通過一組靜態方法來封裝資料訪問功能。該類不能被繼承或執行個體化,因此將其聲明為包含專用建構函式的不可繼承類。在 SqlHelper 類中實現的每種方法都提供了一組一致的重載。這提供了一種很好的使用 SqlHelper 類來執行命令的模式,同時為開發人員選擇訪問資料的方式提供了必要的靈活性。每種方法的重載都支援不同的方法參數,因此開發人員可以確定傳遞串連、事務和參數資訊的方式。