設計模式之工廠設計模式
1.開發環境
- IDEA版本: 2022.1.4
- JDK版本:17.0.3
2.模式由來
2.1 自定義MailSender類
2.2 自定義Computer類
2.3 分析圖
2.4 案例分析
- 由於Computer類和MailSender類之間的耦合度比較高,而且建立物件的程式碼太固定了,若希望使用簡訊傳送的功能需要修改Computer類,這種修改違背了開閉原則,為了解決該問題,就可以將建立物件的工作移交出去,而工廠設計模式就是一種建立物件的設計模式,而且可以在建立物件時不對外暴露具體的建立邏輯。
3 普通工廠方法模式
3.1 基本概念
- 普通工廠方法模式就是建立一個工廠類,通過生產方法的引數來進行具體例項的建立。
3.2 自定義Sender介面
3.3 修改MailSender類
3.4 自定義SmsSender類
3.5 自定義SendFactory類
3.6 修改Computer類
3.7 分析圖
3.8 案例分析
- 在普通工廠方法模式中,若傳遞的字串出錯,則不能正確建立物件,而且可能出現空指標異常,所以容錯率不高。
4.多個工廠方法模式
4.1 基本概念
- 多個工廠方法模式就是通過多個不同的生產方法對實現同一介面的不同實現類分別進行物件的建立。
4.2 修改SendFactory類
4.3 修改Computer類
4.4 分析圖
4.5 案例分析
- 在多個工廠方法模式中,為了能夠正確建立物件,需要先建立工廠類的物件才能呼叫工廠類中的生產方法。
5.靜態工廠方法模式
5.1 基本概念
- 靜態工廠方法模式就是將多個不同的生產方法加上static關鍵字提升為類層級,此時只需要通過類名.的方式就可以進行方法的呼叫,從而進行不同例項的建立。
5.2 修改SendFactory類
5.3 修改Computer類
5.4 分析圖
5.5 案例分析
- 靜態工廠方法模式中類的建立依賴工廠類,如果想要擴充套件程式來生產新的產品,就必須對工廠類的程式碼進行修改,這就違背了開閉原則。
6.抽象工廠模式
6.1 基本概念
- 抽象工廠模式就是將多個不同的生產方法放在不同的工廠類中,讓多個工廠類實現同一個介面,此時只需要通過不同的工廠類就可以進行不同例項的建立。
6.2 自定義SendFactory介面
6.3 自定義MailSendFactory類
6.4 自定義SmsSendFactory類
6.5 修改Computer類
6.6 分析圖
6.7 案例分析
- 現在想要拓展程式生產新的產品,就只需要增加新的工廠類即可,不用違背開閉原則,同時每個工廠類對應一個產品,符合單一職責的原則。
更多精彩歡迎關注微信公眾號《格子衫007》!
相關推薦
23種設計模式之工廠方法模式、抽象工廠模式
1、簡單工廠模式(靜態工廠方法模式) 1.1 定義 定義一個工廠類,根據傳入的引數不同返回不同的例項,被建立的例項具有共同的父類或介面。23種設計模式並不包括簡單工廠模式,它更像一種程式設計習慣。
php設計模式之工廠方法模式分析【星際爭霸遊戲案例】
本文例項講述了php設計模式之工廠方法模式。分享給大家供大家參考,具體如下:
設計模式之工廠方法模式
設計模式之工廠方法模式 本篇部落格參考以下文章: 工廠方法模式(詳解版)
設計模式之工廠方法模式與抽象工廠模式
技術標籤:設計模式設計模式java 前提 工廠模式,無論是簡單工廠、抽象工廠、工廠方法,都是在要建立的物件比較固定,且比較複雜,且客戶端無需關注物件建立細節的情況下,才比較適合用。
C++設計模式之工廠方法模式詳解(對比簡單工廠)
技術標籤:設計模式c++設計模式工廠方法模式 前面的文章詳細介紹了單例模式和簡單工廠模式,有需要的可以點選連結去看看。之前說到,簡單工廠模式有一個最大的弊端就是它違背了開放封閉原則,因為如果需要新增功
PHP設計模式之工廠方法模式
PHP設計模式之工廠方法模式 目錄PHP設計模式之工廠方法模式例項 工廠方法模式對比簡單工廠來說,最核心的一點,其實就是將實現推遲到子類。怎麼理解呢?我們可以將上回的簡單工廠當做父類,然後有一堆子類去繼承它。
必須掌握的Golang23種設計模式之工廠方法模式
設計模式(Design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、程式碼設計經驗的總結。
02-03.(建立型模式)java設計模式之工廠方法模式與抽象工廠模式
一、什麼是工廠模式 1.1⼯⼚模式有 3 種不同的實現⽅式: 簡單⼯⼚模式(沒有在23種設計模式中):通過傳⼊相關的型別來返回相應的類,這種⽅式⽐較單 ⼀,可擴充套件性相對較差;
設計模式之工廠設計模式
1.開發環境 IDEA版本: 2022.1.4 JDK版本:17.0.3 2.模式由來 2.1 自定義MailSender類 2.2 自定義Computer類
iOS設計模式之工廠方法
定義 工廠模式:定義建立物件的介面,讓子類決定例項化哪一個類,工廠方法使得一個類的例項化延遲到其子類。
?設計模式之工廠三兄弟
熊二:工廠模式三兄弟,聽說過沒? 熊大:...... 熊二:工廠模式三兄弟是:簡單工廠模式、工廠方法模式、抽象工廠模式,這三種都是屬於建立型的設計模式。
Java設計模式之單例模式、工廠模式、PO模式【多測師_王sir】
一)、工廠模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種型別的
Java23種設計模式之建立型模式「抽象工廠模式」
抽象工廠模式 抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠建立其他工廠。該超級工廠又稱為其他工廠的工廠。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
Java23種設計模式之建立型模式「工廠方法模式」
工廠方法模式 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
java設計模式之 -- 工廠模式
工廠模式(Factory Pattern) Java 中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
初識設計模式之簡單工廠模式、工廠方法模式、抽象工廠模式
簡單工廠模式 工廠方法模式 抽象工廠模式 工廠顧名思義就是生產產品的意思,根據產品是具體產品還是具體工廠可分為簡單工廠模式和工廠方法模式,根據工廠的抽象程度可分為工廠方法模式和抽象工廠模式。該
PHP設計模式之工廠方法*解讀
「PHP」工廠方法是針對每一種產品提供一個工廠類。通過不同的工廠例項來建立不同的產品例項。
設計模式之-工廠模式
基本概念 工廠模式(Factory Pattern)是 Java 中最常用的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。
PHP設計模式之工廠模式(2)
回顧工廠模式 場景:乘坐交通工具,有開車、有開飛機、有開火車 我們先看看不用工廠模式,如何做的
設計模式之工廠模式
關於設計模式這一塊,個人覺得還是挺重要的。因為這個關乎到程式碼的優雅程度。