1. 程式人生 > >設計模式怎樣解決設計問題

設計模式怎樣解決設計問題

obj bject eth 成對 怎樣 實體 visit 尋找 nbsp

  1. 尋找合適的對象

    面向對象的程序設計由對象組成,對象Object包括數據和對數據進行操作的過程,這些個過程也常常稱為方法Method。對象在收到客戶的請求(或消息)後,執行相應的動作。 客戶請求是使得對象執行操作的唯一途徑,方法又是改變內部數據的唯一途徑。由於這些限制,對象的內部狀態是被封裝的,對於外部對象是不可見的。面向對象設計最困難的部分是將系統分解成對象集合。因為要考慮許多因素:封裝、粒度、依賴關系、靈活性、性能、演化、復用等,它們都影響著系統的分解,並且這些因素通常還是互相沖突的。 你可以寫出一個問題的描述,挑出名詞和動詞,進而創建相應的類和方法;或者關註系統的協作和職責關系;還可以對現實世界建模,再將分析時發現的對象轉化至設計中。設計模式幫你確定並不明顯的抽象和描述這些抽象的對象。例如,描述算法的對象在現實中並不存在,但他們卻是設計的關鍵部分。Strategy模式描述了怎樣實現可互換的算法族。State模式將實體的每一個狀態描述為一個對象。這些對象在分析階段,甚至在設計階段的早期並不存在,後來為了設計的靈活性,復用性才將它們發掘出來。

  2. 決定對象的粒度

    對象在大小和數目上變化極大。它們能表示下自硬件或上自整個應用的任何事物。那麽怎樣決定一個對象應該是什麽呢?設計模式很好地講述了這個問題。Facade模式描述了怎樣用對象表示完整的子系統,Flyweight模式描述了如何支持大量的最小粒度的對象。其他一些設計模式描述了將一個對象分解成許多小對象的特定方法。Abstract Factory和Builder模式產生那些負責生成其他對象的對象。Visitor和command模式生成的對象專門負責實現對其他對象或對象組的請求。

  3. 指定對象接口
  4. 描述對象的實現
  5. 運用復用機制
  6. 關聯運行時刻和編譯時刻的結構
  7. 設計應該支持變化

設計模式怎樣解決設計問題