Java設計模式開篇

橙可可觀 發佈 2020-01-11T13:05:12+00:00

​設計模式這部分內容其實比較繁雜,自己這部分的知識也不是不太牢固,自己通過看視頻及看書等其他的途徑,對這部分內容有了自己的理解,在這裡做個記錄。

​ 設計模式這部分內容其實比較繁雜,自己這部分的知識也不是不太牢固,自己通過看視頻及看書等其他的途徑,對這部分內容有了自己的理解,在這裡做個記錄。這個作為開篇,不會介紹具體的模式,本文主要介紹設計模式的一些理論的知識。



七大基本原則

  • 單一職責原則

Single-Responsibilitiy Principle(SRP):對一個類而言,應該僅有一個引起它變化的原因。如果存在多於一個動機去改變一個類,那麼這個類就具有多於一個的職責,就應該把多餘的職責分離出去,再去創建一些類來完成每一個職責。

  • 開閉原則

Open-Close Principle(OCP):一個軟體實體如類、模塊和函數應該對擴展開放,對修改關閉。目的就是保證程序的擴展性好,易於維護和升級。**開閉原則是設計模式最重要的原則**。優美的代碼不僅實現了功能,更重要的是拓展性,這是一個優秀的coder最重要的素質。

  • 迪米特法則

Law of Demeter : 一個對象應該對其他對象有最少的了解,又稱最少知道原則。主要是降低類之間的耦合。

  • 接口隔離原則

Interface Segregation Principle(ISP):客戶端不應該依賴它不需要的接口,一個類對另一個類的依賴應該建立在最小的接口上。我的理解是如果定義了一個很多方法的接口,許多的類都依賴這個接口,而且這些類中不需要實現所有的方法時,依據接口隔離原則,我們就需要將這個接口分拆為多個小接口,減少依賴。

  • 里氏替換原則

Liskov Substitution Principle(LSP):所有引用基類的地方必須能透明地使用其子類的對象。子類應該不覆蓋父類的非抽象方法,如果子類需要添加新的行為,應該定義新的方法。

  • 依賴倒置原則

Dependence Inversion Principle(DIP): 抽象不應該依賴於細節,細節應當依賴於抽象。換言之,要針對接口編程,而非針對實現編程。這個其實就是面向對象與面向過程編程的最大的不同,正是藉助接口的抽象特性,實現了功能的拓展性。

  • 合成復用原則

Composite Reuse Principle (CRP):要求在軟體復用時,要儘量先使用組合或者聚合等關聯關係來實現,其次才考慮使用繼承關係來實現。因為繼承其實破環了類的封裝性,增加類之間的耦合,使得類的復用性降低。

設計模式的分類

在常用的23中設計模式中,可以分為三大類。一圖勝千言,具體請看下圖。

  • 創建型模式
  • 結構型模式
  • 行為型模式



總結

​ 本文主要介紹的是,設計模式的設計原則和整體分類,通常這些不太受到開發人員的重視,但是不代表這些不重要,特別是七大設計原則是設計模式的目的與出發點,需要時刻謹記。

關鍵字: