為什麼要組織應用程式結構? 在傳統 Windows 開發中,動態連結庫(DLL)是不可或缺的元件。除極小型程式外,實務專案幾乎都由多個編譯單元組成。將大型程式拆
前言 在前一節我們介紹了如何組織應用程式結構,本文將透過一個綜合範例來實際演練。這個小遊戲雖然功能簡單,卻涵蓋了命名空間劃分、多類別定義、動態連結庫(DLL)跨
16.3.2 名字空間使用指示符 using namespace-name; 導入名字空間類型,無需全名。編譯單元/名字空間成員聲明中可直接使用。例: na
16.2.1 名字空間的聲明 格式:namespace qualified-identifier namespace-body;。聲明須在編譯單元首行或作為其
16.2.2 成員與類型聲明 名字空間成員可以是類型 (類、結構、接口、枚舉、委托) 或另一名字空間。編譯單元或名字空間主體可含多成員聲明。 類型聲明可為類
16.2.3 改寫「Welcome」程序 演示名字空間基本用法,將第三章「Welcome」程序分為庫與控制台兩部分。庫提供顯示消息,控制台執行顯示。 庫文件
現實應用常依賴多組件:內部開發、第三方購買。名字空間 提供邏輯層次結構,作內部/外部結構體系,外部時元素可導出。裝配 用於打包與部署,與模塊同為類型物理容器。裝
在配置一般機器運行不完善 Windows 應用時,系統變慢彈出「資源嚴重不足」警告,常因靜態鏈接。普通函數庫鏈接時將代碼拷貝至可執行檔,多程序同時運行內存留重複
Windows 2000 合併 COM 與 MTS 為 COM+,引入全新 API 特性。對開發者意味著什麼?如何高效編寫可靠桌面/分布式應用?本章介紹相關問題
抽象類同非抽象類,必須實現基類列表所有接口成員。不同處:抽象類允許將接口方法映射到抽象成員: interface IMethods { void F(); v
15.4.3 接口映射 類必須為基類列表所有接口成員提供實現。定位類成員實現接口成員稱接口映射,即一一對應函數關係。 類成員與接口成員映射條件: 方法
IDerived : IBase 時,子接口成員覆蓋父接口同名成員。實現 IDerived 的類必須至少一個顯式接口成員執行體,否則編譯器無法分辨映射。合理寫法
15.4.4 接口實現的繼承機制 類繼承基類提供的所有接口實現。不顯式重實現則無法改變繼承的映射。範例: interface IControl { void
15.4.5 接口的重實現 派生類可重寫基類成員,類似引入接口實現稱重實現。繼承接口實現的類可對接口重實現,要求接口出現於類聲明基類列表。重實現嚴守首次實現規
15.3.1 接口成員的定義 接口可含方法、屬性、索引器、事件,不能含 常量、欄位、運算符、構造函數、析構函數、靜態成員。例: interface IExa
接口方法調用與索引器訪問規則同類。若底層成員與繼承高層同名,底層覆蓋高層。但接口支援多繼承,兩父接口含同名成員產生二義性 (這也是 C# 取消類多繼承原因之一)
技術上,接口是包含函數型方法的數據結構,客戶代碼透過它調用組件功能。 15.2.1 聲明 接口聲明定義新接口類型,格式: attributes interf
軟件發展史中,程序設計方法歷經多次變革。當舊方法不適應需求,尋找新法解決「軟件危機」。組件化程序設計結合對象與組件技術,更適合現代企業級應用開發。本節簡介組件與
接口具不變性,但可繼承發展。類似類繼承,但不同: 類繼承 = 說明 + 實現繼承;接口繼承 = 僅說明繼承 (無實現) 類單繼承;接口多繼承,一子接口
組件化程序設計繼承發展了面向對象方法。將對象技術應用於系統設計,對 OO 實現過程進一步抽象。可作構造系統架構層次的方法,並用 OO 便利實現組件。 強調真正