筆記摘要:

講述如何通過模塊化分層設計實現企業級項目架構,包括數據訪問與UI分離、實體類封裝、泛型集合使用、三層結構設計與引用關係配置等內容,最終實現高內聚低耦合的項目結構。/n ---

 

### **1. 數據訪問與UI分離的初步實現

- **查詢方法封裝**

  - 將查詢方法從UI層獨立出去,實現數據訪問邏輯的分離。

  - 示例方法:`GetCostCount` 用於返回課程總數。

- **問題發現**

  - 數據訪問對象(如 `CircleDataReader`)仍出現在UI層,説明分離不徹底。

 

---

 

### **2. 基於實體類的數據封裝

- **實體類作用**

  - 封裝零散參數,作為數據訪問與UI之間的數據載體。

- **返回多條數據的封裝**

  - 使用泛型集合 `List<Course>` 存儲多個實體對象。

  - 在數據訪問層讀取數據後,封裝為實體對象並添加至集合中返回。

 

---

 

### **3. 泛型集合的使用與優化

- **泛型集合優勢**

  - `List<T>` 是實體對象的容器,可存放多個數據對象。

- **代碼優化**

  - 可直接在集合添加時使用 `new` 創建對象,省略中間變量。

  - 示例代碼:

    ```csharp

    list.Add(new Course { ID = reader["ID"], Name = reader["Name"] });

    ```

 

---

 

### **4. 查詢方法實現與錯誤處理

- **數據讀取與封裝**

  - 使用 `reader` 讀取數據庫字段,封裝為 `Course` 實體對象。

  - 注意字段類型轉換,如 `int` 類型使用 `(int)reader["ID"]`。

- **常見錯誤**

  - 字段名拼寫錯誤導致 `Invalid column name`。

  - 字段類型不匹配導致轉換異常。

 

---

 

### **5. 面向對象編程的優勢

- **高內聚低耦合**

  - UI層不再直接操作數據庫,只與實體集合交互。

  - 數據訪問層只負責數據讀取與封裝,不關心UI展示。

- **跨平台複用性**

  - 同一套數據訪問邏輯可應用於 WinForm、Web 等不同UI層。

 

---

 

### **6. 模塊化分層設計與三層結構

- **基本分層結構**

  - UI 層:用户交互。

  - 數據訪問層(DAL):處理數據操作。

  - 實體類:數據載體。

- **三層結構引入**

  - 添加業務邏輯層(BL),負責業務處理與請求轉發。

  - 層級關係:UI → BL → DAL,實體類為公共引用。

 

---

 

### **7. 模塊劃分與引用配置

- **項目模塊劃分**

  - `MyProduct.UI`:控制枱UI。

  - `MyProduct.Models`:實體類庫。

  - `MyProduct.DAL`:數據訪問層。

  - `MyProduct.BL`:業務邏輯層。

- **引用關係設置**

  - `DAL` 引用 `Models`。

  - `BL` 引用 `DAL` 和 `Models`。

  - `UI` 引用 `BL` 和 `Models`。

 

---

 

### **8. 實體類與數據訪問類實現

- **實體類定義**

  - 如 `Course`、`Category`,需設為 `public` 以便跨模塊訪問。

- **數據訪問類實現**

  - `CourseService` 類包含數據庫操作方法(查詢、新增、修改、刪除)。

  - 使用通用數據訪問類執行SQL語句並讀取結果。

 

---

 

### **9. 業務邏輯層實現

- **職責**

  - 接收UI請求,調用數據訪問層方法。

  - 傳遞數據,不處理具體邏輯(預科階段)。

- **實現方式**

  - `CourseManager` 類封裝 `CourseService` 方法。

  - 示例方法:

    ```csharp

    public List<Course> GetCourses(int id)

    {

        return new CourseService().GetCourses(id);

    }

    ```

 

---

 

### **10. UI層調用與模塊化優勢

- **調用流程**

  - UI 創建 `CourseManager` 對象。

  - 調用方法獲取數據集合,使用 `foreach` 遍歷輸出。

- **模塊化優勢**

  - 各層職責清晰,便於團隊協作。

  - 升級或替換某一層時不影響其他層。

  - 可靈活替換數據源(如數據庫、文件等)。

 

---

 

### **11. 分層結構的優勢總結

- **高內聚低耦合**

  - 各層獨立變化,互不影響。

- **便於升級與維護**

  - 替換 DLL 文件即可完成模塊升級。

- **便於團隊協作**

  - 不同成員可分別負責不同模塊。

- **跨項目複用**

  - 實體類與數據訪問層可在多個項目中複用。

 

---

 

### **12. 項目打包與部署

- **部署文件**

  - 包括 UI、BL、DAL、Models 四個 DLL 文件。

  - 配置文件(如 `App.config`)。

- **綠色軟件特性**

  - 無需安裝,直接複製即可運行。

  - 無需註冊表,支持快速部署與更新。

 

---

 

### **13. 學習建議與後續內容

- **建議**

  - 熟練掌握三層結構與模塊化分層。

  - 多做練習,理解各層之間的交互關係。

- **後續內容**

  - 進階內容包括 ORM 框架、代碼生成器、項目打包與自動更新等。

 

思維導圖:

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI

 

學習筆記:

 1. 對話討論瞭如何設計一個查詢方法來獲取課程總數,提出使用get cost count作為方法名,並簡單地複製現有代碼以實現功能,強調了調用這部分內容的省略,專注於方法的設計與實現。 2. 進一步探討了根據課程編號查詢課程信息的查詢方法設計,提出了query cost by ID作為方法名,討論了返回類型的選擇,以及如何通過參數傳遞課程編號以查詢比該編號小的所有課程信息,體現了參數化查詢的靈活性。 3. 強調了在實際開發中,SQL語句可以設計得非常複雜,但當前的討論僅作為基礎演練,旨在理解基本的查詢方法設計與實現流程。 4. 指出了直接將數據訪問邏輯嵌入到查詢方法中的侷限性,提出應將數據訪問邏輯抽象化,通過調用數據訪問層的方法來完成查詢,以提高代碼的可維護性和複用性。 5. 最後,對話通過將具體的數據訪問邏輯替換為調用數據訪問層的quality cos 8AD.ID方法,展示瞭如何將查詢邏輯與數據訪問分離,體現了面向對象編程中封裝和抽象的原則。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_02

 1. 對話討論瞭如何在UI中避免直接使用數據操作對象,以實現更徹底的代碼分離,確保數據訪問邏輯獨立於用户界面。 2. 提出了一個具體案例,即通過ID查詢成本,討論瞭如何在不暴露數據操作對象的情況下,從數據庫中檢索少於1020ID的成本記錄。 3. 指出當前代碼分離不徹底的問題,強調了需要在UI層與數據訪問層之間建立更清晰的邊界,避免數據操作對象直接出現在UI代碼中。 4. 討論了查詢結果的處理,提出了將查詢結果集封裝為特定結果對象的建議,以便在UI中以更友好的方式展示數據。 5. 強調了數據讀取後應有明確的存儲或展示策略,避免數據讀取與展示邏輯混淆,確保數據流的清晰和高效。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_03

 1. 對話討論了數據處理流程中數據展示與數據訪問類職責分離的重要性,指出直接在數據訪問層展示數據會導致職責越權。 2. 提出了在從UI向數據訪問層傳遞數據時,應將零散參數打包成實體類的建議,以提高代碼的整潔性和可維護性。 3. 探討了是否可以從數據訪問類返回數據時也採用實體類打包的方式,以保持數據處理的一致性和規範性。 4. 強調了在設計數據處理流程時,應避免數據訪問類承擔不屬其職責範圍的任務,如直接數據展示,以維護系統的清晰結構。 5. 鼓勵團隊成員思考如何優化數據處理流程,確保每個組件只負責其特定的功能,從而提升整體系統的效率和可擴展性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_04

 1. 對話中提到,當前的數據讀取方式存在問題,需要將其註釋掉以便後續參考,這表明了對現有方法的否定和改進的必要性。 2. 為了實現更有效的數據處理,討論了將讀取的數據封裝到實體對象中的方法,強調了數據封裝的重要性。 3. 提出了基於實體對象的數據返回方式,這是解決數據處理問題的關鍵步驟,旨在優化數據的管理和使用。 4. 對話中隱含了對問題解決路徑的探討,即如何將讀取的數據合理封裝並返回,體現了問題解決的邏輯性和條理性。 5. 整個討論圍繞如何改進數據處理流程展開,從否定現有方式到提出解決方案,展現了問題解決的完整思路。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_05

 1. 通過實體類封裝零散參數,將數據打包後傳遞給數據訪問方法,實現數據的結構化和模塊化。 2. 數據訪問方法處理後需將多條數據返回給UI,這促使我們再次將零散數據封裝到實體類中,以保持數據的完整性和一致性。 3. 為了解決多個實體對象的存儲問題,引入泛型集合List,它作為實體對象的容器,能夠高效管理多個實體實例。 4. 泛型集合List的應用,不僅解決了多實體存儲問題,還體現了面向對象編程中封裝和容器概念的實踐,增強了代碼的可讀性和可維護性。 5. 通過將實體類與泛型集合List結合使用,前後邏輯緊密關聯,形成了一套完整、高效的數據處理流程,提高了軟件開發的效率和質量。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_06

 1. 將每一條數據封裝成實體對象後,放入list集合中,作為方法的返回值,可以提高代碼的可讀性和可維護性,同時便於數據的統一管理和操作。 2. 提前準備一個包含Cos對象的list集合,可以有效減少重複代碼,提高程序執行效率,尤其是在需要頻繁讀取和操作數據的場景下。 3. 判斷是否有結果後再決定是否讀取數據,可以避免不必要的資源消耗,優化程序性能,確保資源的高效利用。 4. 刪除不再需要的註釋,可以使代碼更加簡潔明瞭,減少代碼量,提高代碼的可讀性和可維護性,便於後續的代碼維護和更新。 5. 每次讀完數據後,優化數據處理流程,避免重複寫法,可以減少代碼冗餘,提高代碼的執行效率,同時降低出錯的可能性,確保程序的穩定性和可靠性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_07

 1. 對話中提到創建cos對象,並開始封裝,展示了在項目開發中創建和封裝對象的實踐過程,強調了對象封裝在軟件開發中的重要性。 2. 討論了封裝的不同方式,包括UI封裝和代碼封裝,指出封裝可以增強代碼的可讀性和可維護性,體現了封裝的靈活性和多樣性。 3. 提及了封裝時對於參數處理的不同方法,如直接傳遞name參數,展示了在封裝時如何優化參數傳遞,提高代碼的效率和簡潔性。 4. 通過反向封裝的例子,説明了封裝策略的調整和優化,強調了根據具體需求調整封裝方式的重要性,以適應不同的開發場景。 5. 對話體現了團隊協作中溝通和協作的重要性,通過分享封裝經驗,促進了團隊成員之間的理解和協作,共同提高項目質量。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_08

 1. 對話中強調了在處理不同類型數據時,如int或時間類型,需要進行適當的類型轉換,例如使用int32或toDate方法,確保數據正確處理。 2. 提到了在代碼中如何高效地將處理後的數據添加到集合中,提倡使用直接new對象並添加到集合的方式,以簡化代碼結構。 3. 強調了在項目開發中,採用簡潔代碼的重要性,鼓勵學習者掌握直接new對象並立即使用的方法,避免不必要的變量聲明。 4. 指出了在完成數據處理和添加到集合後,記得關閉reader對象,確保資源得到妥善管理,這是編程中良好的實踐習慣。 5. 對話還提及了在遇到類型轉換困難時,可以使用萬能轉換器作為備選方案,但提醒並非所有類型都能通過這種方式成功轉換。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_09

 1. 對話討論了在開發中使用泛型集合進行數據返回的實踐,特別是通過課程編號查詢返回集合對象,強調了面向對象編程的重要性。 2. 提出在實際開發中,應避免頻繁使用new操作創建對象,提倡優化代碼,提高效率和可維護性。 3. 説明了通過修改代碼,使用code接收並命名為cost list的方式,可以更高效地處理數據,簡化調用過程。 4. 強調了在開發中,正確的面向對象編程方法能夠帶來更好的代碼結構和功能實現,避免了錯誤的編程習慣。 5. 指出了返回list的好處,包括便於數據操作、提高代碼可讀性和維護性,以及在實際開發中廣泛應用的特性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_10


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_11

 1. 對話討論了在控制枱環境下如何遍歷並顯示成本列表中的信息,包括使用for each循環和輸出成本ID、名稱及學分。 2. 提及了在項目開發,尤其是Web開發中,MAC數據源的便利性,以及在控制枱環境下實現類似功能的方法。 3. 討論中出現了字符串格式不正確的問題,推測可能是數據轉換過程中出現了錯誤,影響了信息的正常顯示。 4. 強調了在輸出信息時,通過添加特定符號(如槓T)和屬性(如cos ID、cos name、課時、學分)來格式化輸出內容。 5. 指出在實現過程中,需要檢查數據轉換邏輯,確保輸出的字符串格式正確,以避免運行時錯誤。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_12

 1. 對話中強調了在編程或數據處理時,確保讀取的屬性名必須在定義或查詢語句中出現,避免因拼寫錯誤或遺漏導致找不到屬性的情況。 2. 提醒在處理字符串格式時,需注意大小寫及英文半角與全角的區別,確保數據正確無誤地被讀取和處理。 3. 強調了在開發過程中,即便是經驗豐富的人員也可能出現疏忽,因此團隊成員間應相互提醒,共同避免類似錯誤。 4. 指出在調試或運行代碼時,若遇到問題,應仔細檢查所有相關聯的變量和函數調用,確保所有必要的元素都被正確地包含和引用。 5. 鼓勵團隊成員在面對問題時保持耐心,通過團隊協作和細緻檢查,逐步排除錯誤,直至問題解決。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_13

 1. 對話中強調了在編程中遇到錯誤時,應立即識別並解決問題,如cos列名無效的錯誤,屬於常見的編程錯誤。 2. 討論了數據封裝的重要性,確保數據的完整性和一致性,避免在使用數據前未進行正確封裝導致的問題。 3. 提到了面向對象編程的趣味性和實用性,特別是在處理後台邏輯時,與項目開發中的實際操作完全一致。 4. 指出Java學習者在學習JDBC時,會發現其與本次講解的內容非常相似,只是使用的對象名稱不同。 5. 強調了項目開發中後台部分與當前講解內容的一致性,鼓勵學習者通過實踐加深對面向對象編程的理解。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_14


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_15

 1. 對象封裝查詢結果時遇到複雜性,可使用IOM框架簡化操作,即便面對50個字段也能用一行代碼解決,體現了技術的高效與簡潔。 2. 原生ADO.NET在追求高性能場景下仍有其價值,學習多種技術路徑有助於全面掌握技能,適應不同需求。 3. 課程中將介紹代碼生成器,用於自動生成部分代碼,減輕編碼負擔,提高開發效率,體現工具在編程中的輔助作用。 4. 強調學習不同技術的重要性,條條大路通羅馬,掌握多種方法有助於應對各種編程挑戰,增強個人技術棧。 5. 總結對象集合返回查詢的好處明顯,對學習者而言具有重要意義,體現了課程內容的實用性和深度。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_16


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_17

 1. 對話討論了集合在數據對象操作中的作用,強調了集合能提供更好的隔離性,無論數據來源是數據庫還是文件,集合都是數據訪問的基礎。 2. 項目中常遇到不同數據源的情況,集合的使用使得數據展示時無需關心具體的數據來源,只需關注集合本身,簡化了數據處理流程。 3. 數據訪問的本質是通過集合讀取數據,集合成為了數據與業務邏輯之間的橋樑,提高了數據操作的靈活性和效率。 4. 集合的使用體現了數據處理的抽象化,使得開發者可以更加專注於業務邏輯的實現,而不必過多考慮數據的具體存儲形式。 5. 在實際應用中,集合的運用有助於統一數據訪問方式,降低了系統維護和擴展的難度,增強了代碼的可讀性和可維護性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_18

 1. 對話強調了高內聚低耦合的設計原則,指出我們只需關注使用集合,而不必關心其實現細節。 2. 體現了數據訪問部分的封裝性,我們只負責將數據封裝到集合中,無需關心其具體使用方式。 3. 討論了軟件設計中的抽象層次,即用户只關注接口的使用,而不需瞭解內部實現。 4. 強調了模塊化設計的好處,即通過分離關注點,使系統更加穩定和易於維護。 5. 提及了開發過程中對代碼質量和設計模式的重視,以實現更高效、更可維護的軟件系統。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_19


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_20


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_21


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_22

 1. 學員應加強對VIP課程作業的練習,以熟練掌握項目分層的概念和實踐。 2. 在開發中,需識別當前作業與實際項目之間的差距,以提升項目質量。 3. 針對更大規模的項目,應探討和實施進一步的優化策略,以適應複雜需求。 4. 強調持續學習的重要性,鼓勵學員跟聽後續課程,以深入理解項目分層和優化方法。 5. 邀請學員繼續參與學習,強調陳老師將提供更詳細的講解和指導,助力學員成長。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_23


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_24

 1. 基本分層架構由UI和數據訪問兩層組成,這是典型的兩層結構,實體類作為數據載體,雖不獨立為層,但在UI和數據訪問層均被使用,對項目開發至關重要。 2. 實體類在項目中充當數據載體的角色,不單獨構成一個層,因為其在UI層和數據訪問層均需調用,確保了數據在不同層間的順暢傳遞。 3. 項目發佈前,開發人員應明確架構劃分,確保UI層和數據訪問層功能獨立,同時實體類的合理使用,使項目結構清晰,便於維護和擴展。 4. 項目發佈後,對外展示的主要是UI層的用户界面,而數據訪問和實體類的內部運作對用户透明,確保了系統的穩定性和安全性。 5. 明確的分層架構和實體類的合理應用,不僅提升了開發效率,也保證了項目在發佈後的穩定運行和用户體驗。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_25

 1. 對話中強調了項目升級時應避免全面替換,如同裝修房子不應重新建造,應局部改造,確保其餘部分不變,以提高效率和減少資源浪費。 2. 提出了通過模塊劃分層的方法來實現項目中各部分的獨立更新和維護,以達到類似裝修房子時只裝修部分區域的效果,確保系統升級時的靈活性和可維護性。 3. 指出當前項目中存在一個EXE文件作為啓動點,但在升級時應避免整體替換,而應通過模塊化設計,實現局部更新,提升項目升級的便捷性和效率。 4. 對話中提到了在項目升級時,如果只依賴一個ESP組件,將難以實現靈活的局部更新,因此建議採用模塊化設計,確保項目各部分獨立可更新。 5. 通過比喻裝修房子來説明項目升級時應遵循的原則,即局部改造而非全面重建,以提高效率和減少資源浪費,同時強調了模塊化設計在實現這一原則中的重要性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_26

 1. 模塊在C Shop或Dolly T平台中的概念主要指類庫項目,一個模塊可以包含一個或多個類庫項目,類庫項目編譯後生成DLL文件,也稱為程序集。 2. 項目中通常包括的模塊有UI模塊、數據模塊和業務模塊,數據模塊進一步細分為一般數據訪問類和通用數據訪問類,隨着項目規模的擴大,還可能加入通信模塊、公共類模塊和服務模塊等。 3. 三層結構是項目開發中常見的架構,包括UI層、業務邏輯層和數據訪問層,UI層在使用數據時通過業務邏輯層間接訪問數據訪問層,實體模塊作為獨立層,不歸屬於特定的層次結構。 4. 實體模塊在項目中扮演着重要角色,它存儲數據結構和業務實體,雖然不直接隸屬於UI、業務邏輯或數據訪問層,但與這三個層次緊密相關,是實現數據流轉和業務邏輯處理的基礎。 5. 隨着課程的深入,學員將逐步瞭解和掌握更多模塊的使用和項目架構的構建,從小項目到大項目,模塊的數量和複雜度會逐步增加,以適應不同規模項目的需求。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_27

 1. 業務模塊作為獨立層,類似於公司中的中層經理,起到協調作用,負責將高層的業務請求和數據傳遞給底層,並分解任務指揮執行。 2. 業務模塊不僅傳遞業務數據和請求,還承擔業務分解職責,將上層任務細化並調用不同的數據模塊來完成,確保任務的高效執行。 3. UI層不能直接訪問數據模塊,必須通過業務模塊進行交互,這一機制確保了系統的結構清晰和職責分明,提高了系統的可維護性和擴展性。 4. 在基於三層結構開發時,業務模塊的設計模仿了公司管理結構,通過任務分解和協調,實現了從上層到下層的有效溝通和任務執行,提高了開發效率和項目管理的規範性。 5. 雖然在預科階段可能不會深入使用業務模塊的全部功能,但理解其在系統架構中的角色和作用,對於後續深入學習和實際開發中的應用至關重要。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_28


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_29


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_30

 1. 創建名為"my product"的項目,並將用户界面模塊命名為"My product UI",為後續項目開發奠定基礎。 2. 新建一個模塊命名為"models",專門用於存放所有的實體類,以實現代碼的模塊化和清晰化。 3. 引入數據訪問層,命名為"DAL",用於處理數據訪問邏輯,確保業務邏輯與數據訪問分離。 4. 建立業務模塊,簡稱為"BL",用於封裝業務邏輯,提升代碼的可維護性和可擴展性。 5. 在實際開發中,可根據項目名稱對模塊命名進行適當調整,以符合項目命名規範和團隊約定。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_31


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_32

 1. 為了構建項目框架,首先需要添加四個模塊,並確保它們之間正確引用,如同將電腦組件整合至主板與機箱,以實現模塊間的協同工作。 2. 引用關係需精心設計,如UI模塊應引用業務邏輯(BL)和模型(models),而業務邏輯模塊則需引用數據訪問層(DLDL)和模型,避免循環引用導致的問題。 3. 在實際操作中,若初次選擇項目類型出現錯誤,應立即糾正,重新選擇正確的類庫項目,確保後續開發流程的順暢。 4. 通過重新添加項目並正確設置引用,可以有效搭建項目的基礎架構,為後續內容的填充奠定堅實的基礎。 5. 整個過程強調了模塊化設計的重要性,以及在項目初期正確設置引用關係對於避免後續開發中可能出現問題的關鍵作用。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_33


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_34

 1. 在系統學習課程中,將DL庫加入新建項目,並通過右鍵點擊引用的方式添加models庫,確保項目能夠正常使用內庫資源。 2. 在BR模塊中,進一步添加對models和BR自身的引用,確保模塊間的協同工作,提升項目功能的完整性和穩定性。 3. UI模塊中同樣添加對BR和models的引用,實現用户界面與後端邏輯的緊密連接,增強用户體驗。 4. 通過右鍵生成解決方案,檢查所引用的庫是否正確導入,確認DR文件(動態鏈接庫文件)在對應文件夾中的存在,驗證項目結構的正確性。 5. 最後,將實體類加入項目中,為項目提供具體的數據結構支持,確保項目能夠處理實際業務需求,實現從數據到界面的完整流程。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_35

 1. 複製實體類代碼並修改命名空間,以適應當前項目結構。 2. 簡化實體類操作,僅保留類名,計劃後續完善細節。 3. 引入teacher實體類,為項目框架搭建做初步準備。 4. 預告後續章節將詳細講解項目框架的搭建與完善。 5. 強調當前操作僅為概念演示,實際功能將在後續章節中實現。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_36


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_37

 1. 數據訪問類的構建涉及將實體類與service結合,並引入必要的命名空間,確保代碼的連貫性和功能完整性。 2. 優化代碼結構時,需刪除不必要的註釋和冗餘部分,同時確保所有引用和配置信息正確無誤,避免編譯錯誤。 3. 在項目中加入通用數據訪問類時,必須調整其命名空間以匹配現有代碼結構,確保代碼的一致性和可維護性。 4. 避免在錯誤的位置添加引用或配置信息,應確保所有引用和配置都位於正確的文件和位置,以防止運行時錯誤。 5. 整個過程中,精簡代碼、檢查引用和配置信息的準確性是關鍵步驟,以保證系統的穩定運行和高效開發。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_38


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_39


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_40

 1. 業務邏輯層作為中間層,主要職責是業務傳遞與隔離,確保數據訪問層與UI層的解耦,通過調用數據訪問層的方法實現數據交互,而自身不包含具體業務實現。 2. 在設計業務邏輯層時,需確保其方法僅作為傳遞作用,避免直接實現業務邏輯,而是通過調用數據訪問層(如cost service)的相應方法完成操作,如查詢、修改和刪除等。 3. UI層應調用業務邏輯層而非直接訪問數據訪問層,以維護系統的分層架構,引入業務邏輯層(BL)而非直接引入數據訪問層(DAL),確保各層職責清晰,避免耦合。 4. 在具體實現中,如查詢操作,應通過業務邏輯層傳遞請求至數據訪問層,再由數據訪問層執行具體操作,返回結果給業務邏輯層,最終展示於UI層,形成完整的數據處理流程。 5. 整體架構設計應遵循企業級項目開發標準,通過引入中間層(業務邏輯層)實現功能模塊化,便於維護與擴展,同時確保各層之間的獨立性,提升系統整體的穩定性和可維護性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_41

 1. 通過使用cost manager而非直接new service,實現業務邏輯與數據訪問的模塊化編程,便於管理和維護。 2. 在調用過程中,先轉到業務邏輯,創建數據訪問對象,再調用具體方法,最終返回數據到UI展示,確保流程清晰。 3. 業務邏輯層作為UI與數據訪問層的橋樑,負責處理複雜的查詢或操作,提高代碼的可讀性和可維護性。 4. 模塊化編程使得UI僅需與業務邏輯層交互,簡化了界面設計,同時保證了系統的擴展性和靈活性。 5. 單步運行調試,從UI到業務邏輯,再到數據訪問層,最後返回結果,驗證了模塊化設計的有效性和正確性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_42

 1. 分層結構讓項目模塊更加清晰,各層職責明確,如UI負責任務分配,業務邏輯負責數據處理,數據訪問負責數據封裝,確保系統穩定運行。 2. 分層結構便於模塊替換,如更換數據訪問層的數據庫訪問方式,無需改動其他層,提高了系統的靈活性和維護性。 3. 業務邏輯層獨立於數據訪問層,即使業務算法發生變化,也無需修改數據訪問層,降低了系統耦合度,便於系統升級和業務變動。 4. UI層通過業務邏輯層間接訪問數據訪問層,形成保護屏障,即使業務邏輯或數據訪問層發生變化,對UI層的影響最小化,增強了系統的穩定性。 5. 分層結構在項目維護和升級時,能夠實現局部修改,不影響其他模塊,極大提升了開發效率和系統的可擴展性。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_43

 1. 分層架構的最大優勢在於各層業務變化不會影響其他層,確保了系統的穩定性和可維護性。 2. 分層設計極大地方便了項目升級和模塊替換,提升了後續開發和維護的效率。 3. 通過複製業務邏輯、數據訪問和實體三個模塊,可以快速移植項目,簡化了項目交接過程。 4. 配置文件的同步傳遞是項目交接中不可或缺的一部分,確保了項目的順利運行和綠色部署。 5. 綠色軟件的特性,即無需打包安裝程序即可直接運行,極大地提升了軟件的部署便捷性和用户體驗。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_數據_44

 1. 通過模塊化設計,系統能夠直接運行,無需註冊表信息,展示了系統的強大之處。 2. 模塊化使得替換或升級模塊變得簡單,只需替換舊模塊即可實現更新。 3. 系統的分層優勢明顯,便於管理和升級,特別是在全站系統學習課程中體現。 4. 升級程序作為專門項目在課程中講解,幫助用户掌握系統維護技巧。 5. 模塊化和分層設計共同提升了系統的靈活性和易用性,便於用户操作和維護。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_45

 1. 分層開發是項目構建的基礎,掌握三層結構對學習有極大幫助,便於團隊分工與權限設置,確保職責清晰。 2. 項目框架搭建無問題後,應熟練掌握模塊化分層設計,這是企業項目架構的關鍵,需深入理解而非淺嘗輒止。 3. 鼓勵學員在羣內積極與老師溝通,通過微信等渠道保持聯繫,以便及時解決學習中遇到的問題。 4. 強調不要跳過當前學習內容直接進入後續,每一步的紮實掌握是達到學習效果的前提。 5. 項目團隊開發中,分層方法的運用能顯著提升效率,確保各模塊負責人明確職責,促進項目順利進行。

C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_封裝_46


C#上位機軟件:19.2 高內聚低耦合思想與實體集合封裝、模塊化分層與三層架構_UI_47