設計模式之禪
單一職責原則
介面一定要做到單一職責,類設計儘量做到只有一個原因引起變化
里氏替換原則
(一)子類必須完全實現父類的方法 (二)子類可以有自己的個性 (三)覆蓋或者實現父類的方法時輸入引數可以被放大 (四)覆寫或者實現父類的方法時輸出結果可以被縮小
依賴倒置原則
(一)每個類儘量都有介面或者抽象類,或者抽象類和介面兩者都具備 (二)變數的表面型別儘量是介面或者抽象類 (三)任何類都不應該從具體類派生 (四)儘量不要覆蓋基類的方法 (五)結合里氏替換原則使用
介面隔離原則
介面和類儘量使用原子介面或者原子類來組裝
迪米特法則
核心觀念:類間解耦、弱耦合
開閉原則
軟體實體應該對擴充套件開放,對修改關閉
單例模式
確保某一個類只有一個例項,而且自行例項化並向整個系統提供這個例項
後續更新
相關推薦
設計模式之禪(1)-設計準則
精簡 是個 依賴關系 項目 開閉 結果 bubuko 自己的 HR 最近幾周一直都在看設計模式之禪,看的過程當中,發現大多數的設計模式在平時編碼過程當中使用到了,當時沒意識到這就是設計模式的一種,翻看自己以前的代碼,有些設計顯然和設計模式的標準有出入,但是個人認為設計模
《設計模式之禪》之——六大設計原則解讀
面向對象 文件 引用 serial 輸出 ble 實例化 客戶 壟斷 一、單一職責原則(Single Responsibility Principle,SRP) 1. 單一職責原則定義 應該有且僅有一個原因引起類的變更。 2. 單一職責原則好處 類的復雜性降低,
設計模式之禪(里氏替換原則)2018-10-19
介面與抽象類的區別: 介面卡模式:使用不同介面的類所提供的服務為客戶端提供它所期望的介面。 實現: 有一個 MediaPlayer 介面和一個實現了 MediaPlayer 介面的實體類 AudioPlayer。預設情況下,AudioPl
設計模式之禪(6)-單件模式
文章目錄 一、單件模式的實現 二、在併發下單件模式的改進 2.1、使用閉鎖測試單件模式的正確性 2.2、使用同步鎖改進單件模式 2.3、使用二重檢查加鎖來改進單件模式
設計模式之禪(5)-介面卡模式
文章目錄 一、介面卡模式是什麼 二、把鴨子“適配”為狗 三、把列舉介面適配為迭代器介面 更多關於設計模式的文章請點選:設計模式之禪(0)-目錄頁 介面卡模式是面向物
設計模式之禪(4)-工廠模式
文章目錄 一、簡單工廠模式 1.1、單一new方式 1.2、簡單工廠模式 二、抽象工廠及工廠方法 2.1、將簡單工廠改造成抽象工廠 2.2、為抽象工廠
設計模式之禪(3)-裝飾者模式
文章目錄 一、裝飾者模式的特點 二、裝飾者模式的使用情景 三、裝飾者模式的一般關係圖 四、裝飾者模式的程式碼實現 五、裝飾者模式使用的設計原則 六、I/O流-典型的裝飾者模式 七、裝飾
設計模式之禪(2)-觀察者模式
文章目錄 一、什麼是觀察者模式 二、通過設計氣象站模組來說明觀察者模式 2.1、觀察者模式設計的一般類圖 2.2、觀察者模式帶來的鬆耦合 2.3、氣象站模組需求 2.4、使用
設計模式之禪(1)-策略模式
文章目錄 一、進一步的改進 二、用策略模式組織類關係例項 更多關於設計模式的文章請點選:設計模式之禪(0)-目錄頁 一、進一步的改進 上面的動物園例子似乎已經足夠地完善了,但是仔
設計模式之禪學習筆記10--模板方法模式
1.模板方法模式 定義一個操作中的演算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個演算法的結構即可重定義該演算法的某些特定步驟. 類圖:
設計模式之禪學習筆記09--代理模式(動態代理)
1.動態代理 動態代理還是屬於設計模式--代理模式的一種,代理類在程式執行時建立的代理方式被成為動態代理。動態代理是在實現階段不用關心代理誰,而在執行階段才指定代理哪一個物件。相對來說,自己寫代理類的方式就是靜態代理。現在有一個非常流行的名稱叫做面向橫切面程式設計,也
設計模式之禪學習筆記08--代理模式
1.代理模式 是一個使用率非常高的模式。代理模式也叫委託模式,他是為其他物件提供一種代理以控制對這個物件的訪問 類圖:代理主題角色和具體的主題角色具有相同的抽象主題介面  
《設計模式之禪》-5.抽象工廠模式
抽象工廠模式 定義: 為建立一組相關或相互依賴的物件提供一個介面,而且無需指定它們的具體類 抽象產品類 public abstract class AbstractProductA { //每個產品的共有方法 public void shareMethod () {
《設計模式之禪》-1.六大原則
1.單一職責原則: 定義:應該有且僅有一個原因引起類的變更 好處: 1.類的複雜性降低,實現什麼職責都有清晰明確的定義; 2.可讀性提高,複雜性降低; 3.可維護性提高,可讀性提高; 4.變更引起的風險降低。變更是必不可少的,如果介面的單一職責做得好,一個介面修改只對相應的實
《設計模式之禪》-4.工廠方法模式的擴充套件
1.靜態工廠模式(簡單工廠模式) 其實就是去掉了抽象工廠類,然後定義一個工廠類的建立方法設定為靜態方法簡化了工廠類的建立 public class Factory{ public static <T extends Product> T create(C
《設計模式之禪》-3.工廠設計模式
工廠設計模式 定義: 定義一個用於建立物件的介面,讓子類決定例項化哪一個類。工廠方法使一個類的例項化延遲到其子類 通用程式碼 //抽象產品類 (也可以是功能介面) public abstract class Product { //產品的公共方法 public voi
《設計模式之禪》-2.單例設計模式
單例設計模式 定義: 確保某一個類只有一個例項,而且自行例項化並向整個系統提供這個例項 通用程式碼: public class Singleton{ private static Singleton singleton = new Singleton(); //私
設計模式之禪
單一職責原則 介面一定要做到單一職責,類設計儘量做到只有一個原因引起變化 里氏替換原則 (一)子類必須完全實現父類的方法 (二)子類可以有自己的個性 (三)覆蓋或者實現父類的方法時輸入引數可以被放大
設計模式之禪學習筆記02--工廠方法模式
1.工廠方法模式: 定義一個用於建立物件的介面,讓子類決定例項化哪一個類,工廠方法使一個類的例項化延遲到其子類 類圖: 根據定義可知: 這個模式有四個角色 :產
設計模式之禪學習筆記04--策略模式
-----謹以此文表明汪先生學過設計模式 1.策略模式 定義一組演算法,將每個演算法都封裝起來,並且使它們之間可以互換。 類圖: ● Strategy抽象策略 策略、演算法家族的抽象,通常為介面,定義每個策略或演算法必須