Java的23中設計模式

2021-09-03 07:44:30 字數 2510 閱讀 1793

工廠模式分為三種:

1.1 普通工廠模式

就是建立乙個工廠類,對實現了同一介面的一些類進行例項的建立。

**如下:(**實現傳送郵件和傳送訊息)

首先,建立共同介面:

public inte***ce sender
其次,建立實體類:

public class mailsender implements sender

}

public class smssender implements sender

}

最後,建工廠類:

public class sendfactory else if ("sms".equals(type))}}

測試:

public static void main(string args)
結果如下: 

1.2多個工廠方法模式

是對普通工廠方法模式的改進,在普通工廠方法模式中,如果傳遞的字串出錯,則不能正確建立物件,而多個工廠方法模式是提供多個工廠方法,分別建立物件。

public class sendfactory 

public sender producesms()

public static void main(string args)

}

結果:

1.2靜態工廠方法模式

將上面的多個工廠方法模式裡的方法置為靜態的,不需要建立例項,直接呼叫即可。

public class sendfactory 

public static sender producesms()

public static void main(string args)

}

總體來說,工廠模式適合:凡是出現了大量的產品需要建立,並且具有共同的介面時,可以通過工廠模式建立。在以上的三種模式中,第一種如果傳入的字串有誤,不能正確的建立物件。第三種相對於第二種,不需要例項化工廠類,所以,大多數情況下,我們會用第三種——靜態工廠模式。

工廠方法模式有乙個問題是,類的建立依賴工廠類,也就是說,如果想要擴充套件程式,必須對工廠類進行修改。這就違背了開閉原則。所以,從設計角度考慮,存在一定問題,如何解決? 這就用到了抽象工廠模式,建立多個工廠類,這樣一旦需要增加新的功能,直接增加新的工廠類就可以了,不需要修改之前的**。

例子如下:

public inte***ce sender
兩個實現類:

public class mailsender implements sender 

}

public class smssender implements sender 

}

工廠介面:

public inte***ce provider
兩個工廠實現類:

public class sendmailfactory implements provider 

}

public class sendsmsfactory implements provider 

}

測試類:

public static void main(string args)
這個模式的好處就是:如果現在想增加乙個功能,只需要增加乙個類去實現sender介面,然後再乙個實現工廠類去實現provider介面。無需改動現成的**。具備良好的擴充套件性。

通過單例模式的學習告訴我們:

1.單例模式實現起來簡單,但是具體實現起來還是有一定難度的。

2.synchronized關鍵字鎖定的是物件,在用的時候,一定要在恰當的地方使用(注意需要使用鎖的物件和過程,可能有時候並不是整個物件及整個過程都需要鎖)

還有一種採用類的靜態方法實現單例模式的效果。此處二者有什麼不同呢?

首先,靜態類不能實現介面。(從類的角度說是可以的,但是那樣就破壞了靜態,因為介面中不允許有staic修飾的方法,所以即使實現了也是非靜態的)

其次,單例可以被延遲初始化,靜態類一般在第一次載入是初始化。之所以延遲載入。是因為有些模擬較龐大,所以延遲載入有助於提公升效能。單例可以被繼承,他的方法可以被覆蓋。但是靜態類內部方法都是static,無法被覆寫。

Java 23中設計模式

模式 避免重複問題,而提出來的解決方案 模式又可以分為 架構模式 設計模式 架構模式 軟體架構商的整體考慮而提出來的一些解決方案,比如 三層架構 b s,c s,mvc,orm事物指令碼 領域模型.從巨集觀的角度上來說.設計模式 是從微觀的角度上來看待軟體開發過程中,碰到的一些重複業務場景,並提出的...

java中23種設計模式

總體來說設計模式分為三大類 建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模式...

Java中的23種設計模式

factory 工廠模式 builder 建造模式 factory method 工廠方法模式 prototype 原始模型模式 singleton 單例模式 facade 門面模式 adapter 介面卡模式 bridge 橋梁模式 composite 合成模式 decorator 裝飾模式 fl...