java 設計模式基礎

ckxllf發表於2019-08-30

  1、單例模式

  單例模式:分為餓漢式和懶漢式

  餓漢式:

  public class Singleton {

  private static Singleton instance = new Singleton();

  private Singleton(){}

  public static Singleton getInstance(){

  return instance ;

  }

  }

  懶漢式:

  public class Singleton02 {

  private static Singleton02 instance;

  private Singleton02(){}

  public static Singleton02 getInstance(){

  if (instance == null){

  instance = new Singleton02();

  }

  return instance;

  }

  }

  //執行緒安全的單例,使用同步程式碼塊鎖住例項的建立,使其在一個執行緒中僅會初始化一次

  //(使用雙重校驗鎖去處理)

  public class Singleton02 {

  private static Singleton02 instance;

  private Singleton02(){}

  public static Singleton02 getInstance(){

  if (instance == null){

  synchronized (Singleton02.class)

  if (instance == null){

  instance = new Singleton02();

  }

  }

  }

  return instance;

  }

  }

  2、MVP,MVC,MVVM

    MVP模式,對應著Model–業務邏輯和實體模型,view–對應著activity,負責View的繪製以及與使用者互動,Presenter–負責View和Model之間的互動,MVP模式是在MVC模式的基礎上,將Model與View徹底分離使得專案的耦合性更低,在Mvc中專案中的activity對應著mvc中的C–Controllor,而專案中的邏輯處理都是在這個C中處理,同時View與Model之間的互動,也是也就是說,mvc中所有的邏輯互動和使用者互動,都是放在Controllor中,也就是activity中。View和model是可以直接通訊的。而MVP模式則是分離的更加徹底,分工更加明確Model–業務邏輯和實體模型,view–負責與使用者互動,Presenter 負責完成View於Model間的互動,MVP和MVC最大的區別是MVC中是允許Model和View進行互動的,而MVP中很明顯,Model與View之間的互動由Presenter完成。還有一點就是Presenter與View之間的互動是透過介面的

  3、工廠模式  無錫婦科醫院排行

  (1). 簡單工廠模式

    簡單工廠的定義:提供一個建立物件例項的功能,而無須關心其具體實現。被建立例項的型別可以是介面、抽象類,也可以是具體的類(工廠為介面或者抽象類,例項為繼承該介面或者抽象類的類)

  (2). 工廠方法

    就是講簡單工廠模式當中的基類介面或者抽象類作為工廠的方法的返回值使用,然後由例項繼承該工廠類

  (3). 抽象工廠

    就是工廠類為抽象類,然後必須要有一個預設子類來繼承該工廠,實現其工廠方法返回一個預設的資料

  4、觀察者模式

    觀察者模式又稱為釋出/訂閱(Publish/Subscribe)模式

    觀察者設計模式涉及到兩種角色:主題(Subject)和觀察者(Observer)

    Java中觀察者模式需要被觀察者繼承java.util.Observable類,需要觀察者實現java.util.Observer介面。其中Observer介面中有一個update方法,它在被觀察者的某些位置發生改變時會被自動呼叫。

  5、建造者模式builder

    建立者模式又叫建造者模式,是將一個複雜的物件的構建與它的表示分離,使得同樣的構建過程可以建立不同的表示。建立者模式隱藏了複雜物件的建立過程,它把複雜物件的建立過程加以抽象,透過子類繼承或者過載的方式,動態的建立具有複合屬性的物件。

  6、裝飾器模式

    裝飾器模式,顧名思義,就是對已經存在的某些類進行裝飾,以此來擴充套件一些功能。其結構圖如下:

    Component為統一介面,也是裝飾類和被裝飾類的基本型別。

    ConcreteComponent為具體實現類,也是被裝飾類,他本身是個具有一些功能的完整的類。

    Decorator是裝飾類,實現了Component介面的同時還在內部維護了一個ConcreteComponent的例項,並可以透過建構函式初始化。而Decorator本身,通常採用預設實現,他的存在僅僅是一個宣告:我要生產出一些用於裝飾的子類了。而其子類才是賦有具體裝飾效果的裝飾產品類。

    ConcreteDecorator是具體的裝飾產品類,每一種裝飾產品都具有特定的裝飾效果。可以透過構造器宣告裝飾哪種型別的ConcreteComponent,從而對其進行裝飾。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69945560/viewspace-2655525/,如需轉載,請註明出處,否則將追究法律責任。

相關文章