理解組件後,必須理解接口 (interface)。接口描述組件對外服務。組件間、組件與客戶間均透過接口交互。組件發布後,只能透過預定義接口提供一致服務,穩定性使
組件 (component) 非新概念,成熟工程領域廣泛應用。如組裝電腦:無需懂 CPU/主板/光驅原理,只需知如何組裝。 軟件組件發展較慢。早期應用為單一程
架構定義 應用程式架構是系統結構的概念性描述。隨著分散式運算普及,企業需縮短開發週期、提高靈活性以應對市場變化。 傳統兩層架構 (Client/Server)
同方法,屬性也可定義重寫、虛屬性、抽象屬性、密封屬性。修飾規則: 屬性重寫 派生類用 override 表示重寫基類同名屬性 名稱、類型、存取修飾符
屬性規則與方法類似。get 視為同修飾符、無參、返回屬性類型的方法;set 視為同修飾符、單 value 參、返回 void 的方法。沿用第十章客戶住宿例擴展:
sealed 修飾符可用於類防止繼承,也可用於方法 防止派生類重寫。稱此為密封方法。 非所有成員均可密封:密封方法必須重寫基類虛方法 並提供具體實現,故 se
17.3.2 二進制模式讀寫 System.IO 提供 BinaryReader/BinaryWriter 進行二進制讀寫,方法對稱: 讀:ReadBy
先看代碼: ArrayList list = new ArrayList(); list.Add(1); list.Add(2); byte[] buf =
介紹 C# 程序 Bug 快速修復方法。.NET 含多工具助編寫正確代碼,但 Bug 不可避免。經驗多數 Bug 發生在程序員介面:調用者破壞了編寫者的假設。誰
驗證完整性 C# 多為實例方法,對象有效狀態隱含假設。公有方法被調用時應驗證假設。條件編譯讓此極簡單: 先寫私有驗證方法,標記 [Conditional(D
設置 Listeners .NET 提供 Listeners 集合接收 Debug、Assert、Trace 輸出。預設只有 DefaultTraceList
委托與事件在 .NET 應用極廣,但初學者常感困惑。本文透過兩個範例由淺入深講解:委托定義、為何使用、事件由來、.NET 中的委托事件、Observer 模式意
思考新方案前,觀察 GreetPeople(string name, Language lang) 簽名。string name 中 string 為參數類型,
輸出雙語問候。委托總結:委托是類,定義方法類型,讓方法可作參數傳遞,避免大量 if-else/switch,提升擴展性。 將方法綁定到委托 委托變量用法類似
委托實例化語法與類相似。嘗試用 new GreetingDelegate() 避免首次綁定不能用 += 的錯誤: GreetingDelegate deleg
運行無誤,輸出雙語問候。若需將多方法綁定同一委托: static void Main() { GreetingManager gm = new Gre
委托變量 delegate1 與普通 string 變量無異。但封裝原則要求:該公開則公開,該私有則私有。 若聲明 private:客戶端不可見,無法註冊方法
進一步檢視 MakeGreet 事件生成的代碼: private GreetingDelegate MakeGreet; // 事件聲明實為私有委托欄位 [
委托、事件與 Observer 設計模式 新範例:高階熱水器,水溫超過 95 度時揚聲器語音報溫、液晶屏顯示提示。定義 Heater 類含 temperatu
Observer 設計模式簡介 假設熱水器由熱水器本體、警報器、顯示器三廠商組裝而成。熱水器僅負責燒水,不發警報不顯示溫度;水快燒開時由警報器報警、顯示器提示