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

2021-08-23 15:03:29 字數 968 閱讀 2232

1.尋找合適的物件,如何將現實世界種的物件抽象出來,或者找出現實世界中不存在的物件,這步將直接導致後面設計的好壞。因為如果不能找到合適的物件,那麼你的設計又將在**呢?

2.決定物件的粒度

盡量將粒度細化到最小,比如你認為4個輪子的是汽車,那如果出現了8個輪子的汽車那將怎麼辦呢?

3.將物件通用的操作定義為介面,比如麻雀和大雁可以定義出鳥類介面,而且都有飛的操作。

4.描述物件的實現

即你怎麼去拿到你想要的物件,不管用什麼手段和方法。

5.設計應支援變化

1) 通過顯式地指定乙個類來建立物件在建立物件

2) 對特殊操作的依賴

3) 對硬體和軟體平台的依賴

4) 對物件表示或實現的依賴

5) 演算法依賴

6) 緊耦合

7) 通過生成子類來擴充功能

8) 不能方便地對類進行修改

可復用物件導向程式設計原則:

1.針對介面程式設計,而不是針對實現程式設計

當你不得不去拿到具體的實現時,已經有一些設計模式幫你解決這個問題,比如abstract factory,builder等等

2.優先使用物件組合,而不是類繼承

2、1當你使用子類的時候,必然會依賴於父類,當父類變更的時候,必然影響到子類

組合要求物件遵守彼

此的介面約定,進而要求更仔細地定義介面,而這些介面並不妨礙你將乙個物件和其他物件

一起使用。

2.2物件組合對系統設計還有另乙個作用,即優先使用物件組合有助於你保持每個類被封裝,

並被集中在單個任務上。這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控

制的龐然大物。另一方面,基於物件組合的設計會有更多的物件(而有較少的類),且系統的行

為將依賴於物件間的關係而不是被定義在某個類中。

理想的情況下,我們可以利用組合獲取所有想要的元件。

2.3委託是物件組合的特例。它告訴你物件組合作為乙個**復用機制可以替代繼承。

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

物件導向程式由物件組成,物件包括資料和對資料進行操作的過程,過程通常稱為方法或操作。物件在收到客戶的請求 或訊息 後,執行相應的操作。客戶請求是使物件執行操作的唯一方法,操作又是物件改變內部資料的唯一方法。由於這些限制,物件的內部狀態是被封裝的,它不能被直接訪問,它的表示對於物件外部是不可見的。物件...

《設計模式》學習筆記 設計模式怎樣解決設計問題

1.1 設計模式怎樣解決設計問題 1.1.1 尋找合適的物件 物件導向設計最困難的部分是將系統分解為物件的集合。設計的許多物件 於現實世界的分析模型,這裡和領域驅動設計有點關聯。分析所得到的類,很多事現實中並不存在的類。這是抽象的結果。設計中的抽象對於產生靈活的設計至關重要。就像我設計的乙個流程排程...

《設計模式》學習筆記 設計模式怎樣解決設計問題

1.1 設計模式怎樣解決設計問題 1.1.1 尋找合適的物件 物件導向設計最困難的部分是將系統分解為物件的集合。設計的許多物件 於現實世界的分析模型,這裡和領域驅動設計有點關聯。分析所得到的類,很多事現實中並不存在的類。這是抽象的結果。設計中的抽象對於產生靈活的設計至關重要。就像我設計的乙個流程排程...