重構的關鍵技法:
靜態 -> 動態
早綁定 -> 晚綁定
繼承 -> 組合
編譯時依賴 -> 運行時依賴
緊耦合 -> 松耦合
?
"組件協作"模式
現代軟件專業分工之后的第一個結果是“框架與應用程序的劃分”,“組件協作”模式通過晚期綁定,來實現框架與應用程序間的松耦合,是二者之間協作時常用的模式。
典型模式:Template Method,Strategy,Observer/Event
?
Template Method
動機:在軟件構建過程中,對于某一項任務,它常常有穩定的整體操作結構,但各個子步驟卻有很多改變的需求,或者由于固有的原因(比如框架與應用之間的關系)而無法和任務的整體結構同時實現。
如何在確定穩定操作結構的前提下,來靈活地應對各個子步驟的變化或晚期實現需求。
要點總結:
Template Method模式是一種非常基礎性的設計模式,在面向對象系統中有著大量的應用。它用最簡單的機制(虛函數的多態性)為很多應用程序框架提供了靈活的擴展點,是代碼復用方面的基本實現結構。
?
綁定的概念
什么是綁定?
將函數體和函數調用關聯起來,就叫綁定。
什么是早綁定?
在程序運行之前(也就是編譯和鏈接時),執行的綁定是早綁定。
什么是晚綁定?
晚綁定發生在運行時,基于不同類型的對象。當一種語言實現晚綁定時,必須有某種機制確定對象的具體類型然后調用合適的成員函數。
虛函數
虛函數就是延遲,延遲到運行時再綁定。
?