基礎觀念導引 - 何謂靜態與動態?
靜態結構 (Static Structure)
- 表達軟體內部的結構設計。
- 一般指程式原始碼 (Source Code)。
- 軟體人員對資訊系統的設計契約 (Design Contract)。
靜態結構的設計契約
public class myclass { public void method_1() { //do something } public string method_2(string var) { //return a string return var; } } |
誰來解讀設計契約?
- 一般指軟體資訊系統或應用軟體伺服器 (Application Server)。
- ie. 可以編譯 C#.NET 程式碼 (設計契約)並能在 .NET 平台上執行應用程式。
- 可以編譯 Java Spring 程式碼並能在支持 JEE (Java Enterprise Edition)平台執行完成編譯的應用程式。
動態相依 (Dynamic Dependency)
- 系統在執行某一特定功能時,所啟始不同的程序單元之間呼叫的一種動態相依關係。
- 一般指程式碼經過編譯後在執行期間 (run-time)的應用程式。
- 資訊系統履行軟體人員的設計契約,使之可以在其平台上執行。
靜態設計契約 vs. 動態物件間的相依關係
範例-靜態的程式碼設計契約
範例-動態物件間的相依關係
從物件導向角度來看待時
- 類別 (Class):Developer 對系統的設計契約。
- 物件 (Object):系統依據 Developer 的設計契約 (類別)在執行期間所產生的個體 (instance)。
推論-靜/動態 與 類別/物件的關係
- 靜態結構 = 類別設計 (Class Design)。
- 動態相依 = 物件之間的互動合作 (Object Collaboration)。