設計模式的幾大原則

2021-05-24 11:11:15 字數 793 閱讀 5363

單一職責原則:就乙個類而言,應該僅有乙個引起它變化的原因。如果乙個類承擔的職責過多,就等於把這些職責耦合在一起,乙個職責的變化可能會削弱或抑制這個類完成其他職責的能力。這種耦合會導致脆弱的設計,當變化發生時,設計會遭受到竟想不到的破壞。

開放-封閉原則:是說軟體實體(類、模組、函式等等)應該可以擴充套件,但是不可修改。無論模組是多麼的「封閉」,都會存在一些無法對之封閉的變化。既然不可能完全封閉,設計人員必須對於他設計的模組應該對哪種變化封閉做出選擇。他必須先猜測出最有可能發生變化種類,然後構造抽象來隔離那些變化。

依賴倒轉原則:高層模組不應該依賴底層模組。兩個都應該依賴抽象;抽象不應該依賴細節,細節應該依賴抽象。(針對介面程式設計,不要對實現程式設計)

黎克特制代換原則:子型別必須能夠替換掉它們的父型別。乙個軟體實體如果使用的是乙個父類的話,那麼一定適用於其子類,而且察覺不出父類物件的區別。也就是說,在軟體裡面,把父類都替換成它的子類,程式的行為沒有變化。只有當子類可以替換掉父類,軟體單位的功能不受到影響時,父類才能真正被復用,而子類也能夠在父類的基礎上增加新的行為。(鳥類和企鵝的例子)

迪公尺特法則:如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。在類的結構設計上,每乙個類都應該盡量降低成員的訪問許可權,則其根本思想,是強調了類之間的松耦合。

合成/聚合復用原則:盡量使用合成

/聚合,盡量不要使用類繼承。優先使用物件的合成

/聚合將有助於你保持每個類被封裝,並被集中在單個任務上,這樣類和類繼承層次會保持較小規模,並且不太可能增長為不可控制的龐然大物。

設計模式幾大原則

談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...

設計模式幾大原則

談到設計模式,不能不說一下grasp 職責分配原則 這個比模式更重要.我將再後邊接著來分析.下面我來分析一下設計模式原則,以及在設計模式中的體現.主要參考 程杰 大話設計模組 這裡用dh代替 和justin tech 的部落格.一 設計模式的核心原則是 開 閉 原則 open closed prin...

設計模式幾大原則

開閉原則 open close principle 對擴充套件開放,對修改封閉。該設計原則要求在程式要進行擴充套件的時候,不去修改原有 而是通過擴充套件新 來實現。這樣的程式 非常易於維護和公升級。單一原則 每個類應該實現單一的職責。如果某類多於乙個職責,就應該對其進行拆分。黎克特制替換原則 lis...