開發中的重點-----設計模式

說到設計模式,要先了解設計模式的原則:java

  • 總原則--開閉原則:開閉原則就是對外擴展開放,對內修改關閉,這樣易於維護和升級,實現熱插拔的效果。
  • 單一職責原則:即每個類都只應該實現單一的職責。
  • 里氏替換原則:即基類能夠出現的地方,子類也必定能夠出現
  • 依賴倒轉原則:這個是開閉原則的基礎,在面向接口編程中,依賴於抽象而不依賴於具體,在寫代碼時用到具體的類時,是與類上級的接口交互,而不是直接與類交互。
  • 接口隔離原則:接口隔離是指每一個接口不存在子類用不到卻必須實現的方法。
  • 迪米特法則:一個類對本身依賴的類知道的越少越好。
  • 合併複用原則:原則上儘可能使用聚合、合併的方式實現,而不是使用繼承。

瞭解了以上設計模式的設計原則,在去理解和學習設計模式就很簡單了,在咱們開發中設計模式一共23種,這裏簡單介紹經常使用的幾種:面試

  1. 工廠模式:經過調用方法進行實例化對象,可解決對象產生過多等問題,例如spring的核心就是工廠模式
  2. 單例模式:一個類在java虛擬機中只有一個對象,並提供一個全局訪問點。使對象惟一,防止性能浪費。模式結構分爲懶漢式和餓漢式,通常是使用懶漢式,由於懶漢式性能優化,懶漢式在方法裏面進行初始化的,下面看代碼(有時候面試的時候讓手寫)
//餓漢式
public
class HSingleton{   pravite static HSingleton hurgry = new HSingletion();   private HSingleton(){}   public static HSingleton getSingletonHurgry(){     return hurgry;   } }

//懶漢式
public class LSingleton{
  private static LSingleton instence = null;
  private LSingleton(){}
  public static LSingleton getInstence(){
    if(instence == null){
    instence = new LSingleton();
    }
    return instence;
  }
}

  3.代理模式:爲其餘大對象提供一個代理,以控制對當前對象的訪問,或者減小太大資源的消耗。例如spring AOP的實現,mybatis中的dao層,能夠直接調用接口的方法,接口中的方法就是代理方法。算法

  4.策略模式:設計一個頂級接口,用不一樣的算法方法去實現相同的功能,就是策略模式。spring

  5.模板模式:定義一個流程,在實現某個模塊功能的時候,按照這個流程開發。應用:定義一個抽象父類定義流程,或者經常使用的方法和常量,子類實現父類,實現具體細節方法。編程

  6.裝飾模式:對一個對象作一些裝飾,使對象具有新的功能,並且是動態的。要求裝飾對象和被裝飾對象實現同一個接口設計模式

23種設計模式種以上幾種比較經常使用,有興趣的能夠在網上了解一下其餘幾種:總結以下性能優化

  • 建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
  • 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
  • 行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解釋器模式。
相關文章
相關標籤/搜索