設計模式 工廠方法模式 抽象工廠模式

2021-07-29 18:44:36 字數 2627 閱讀 8356

最近擠了擠時間出來看了下設計模式,汗!總算來總結點東東了,最近專案忙得暈頭轉向了啊t.t好了言歸正傳,開始總結。

理論定義來一套:設計模式(design patterns)是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。使用設計模式是為了可重用**,讓**更容易被他人理解、保證**可靠性。

設計模式的分類

設計模式主要分為三大類(主要是這二十三種):

建立型模式:建立物件時,不再由我們直接例項化物件;而是根據特定場景,由程式來確定建立物件的方式,從而保證更大的效能、更好的架構優勢。

共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式

結構型模式:用於幫助將多個物件組織成更大的結構。

共七種:介面卡模式adapter、裝飾器模式decorator、**模式proxy、外觀模式、橋接模式bridge、組合模式component、享元模式flyweight。

行為型模式:用於幫助系統間各物件的通訊,以及如何控制複雜系統中流程。

共十一種:策略模式、模板方法模式、觀察者模式、迭代器模式、責任鏈模式、命令模式command、備忘錄模式、狀態模式、訪問者模式、終結者模式、直譯器模式。

常用的設計模式介紹——工廠方法模式

/**

* 定義共同的介面

* @author hacfqx

* */

public inte***ce maker

/**

* 這是製造雪碧的按鈕

* @author hacfqx

* */

public class spritemaker implements maker

}

/**

* 這是雪碧的按鈕

* @author hacfqx

* */

public class colamaker implements maker

}

/**

* 這是多功能飲料機

* @author hacfqx

* */

public class make***ctory else if ("sprite".equals(type))

return null;

}}

多功能飲料機搞定了,小明想喝飲料了,那就來吧

public class factorytest 

}

結果肯定是得到了一杯雪碧了,是不是很簡單!

常用的設計模式介紹——抽象工廠模式

時間久了之後,小明發現這款功能機已經滿足不了,於是他打**給廠家說,這款功能機能不能加點其他飲料的功能。

廠家想了很久答應了,為了防止以後小明提出各種各樣的增加飲料功能,於是乎就有了下面的改造。這種改造不會破壞以前的飲料機製造飲料的功能,僅僅相當於你想要芬達,我給你加乙個芬達的容器在機器上。你想要可樂,我給你加上可樂的容器。

/**

* 廠家提供一些服務

* @author hacfqx

* */

public inte***ce provider

/**

* 廠家提供服務,我給你加乙個芬達容器

* 用於製造芬達

* @author hacfqx

* */

public class fendamake***ctory implements provider

}

**

* 廠家提供服務,我給你加乙個可樂容器

* 用於製造可樂

* @author hacfqx

* */

public class colamake***ctory implements provider

}

/**

* 這是芬達按鈕

* @author hacfqx

* */

public class fendamaker implements maker

}

其他沒有多大的改變

/**

* 定義共同的介面

* @author hacfqx

* */

public inte***ce maker

這時候就試一下吧

public class makertest 

}

好了,抽象工廠理解起來還是比較容易,在不破壞基本功能下(不然違背了閉包原則),這裡的意思是擴充套件了芬達容器,不能對可樂雪碧的製造有影響,將他們看做在同乙個工廠內的單獨個體,互不影響,可能這是乙個糟糕的比喻!那就換句話說,抽象工廠模式在這裡的好處就是,作為工廠方,為了顧客提出的各種各樣的增加飲料種類的功能要求,如果你要芬達,作為廠商的我早就知道了你的需求,我只要做乙個實現類,實現maker介面,作為按鈕,同時做乙個芬達容器fendamake***ctory連線著這個fendamaker按鈕...上面已經這樣總結過了,我沒有找到比這更能自我理解抽象工廠的比喻了-  -。

設計模式之簡單工廠 工廠方法模式 抽象工廠模式

這裡講三種模式放在一起說明,是因為三種模式關聯性很強 抽象工廠模式簡單化以後就是工廠方法模式,工廠方法模式再簡單化就是簡單工廠模式 簡單工廠模式並沒有被列入到gof的設計模式中 public class factory 簡單工廠類,實現建立產品物件 class factory return prod...

設計模式 工廠模式(工廠方法 抽象工廠)

1 工廠方法模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪個類。工廠方法使乙個類的例項化延遲到其子類。正如建立交通工具,可以通過不同的工廠方法建立所需的物件。類圖 對比 1 工廠方法在產品維度,即類圖中movable方向拓展比較方便,只需增加對應的類及相應的工廠方...

設計模式 工廠方法 抽象工廠模式

在業務邏輯中往往有需要建立物件的需求 如何將這部分邏輯封裝並且使得其能個適應於頻繁的變化呢?簡單工廠模式 將物件建立邏輯封裝隔離在簡單工廠類的方法中。簡單工廠的常見實現方式 1 簡單工廠類以及其建立物件的靜態方法 其客戶可以直接呼叫該類的靜態方法。2 簡單工廠類以及其建立物件的成員方法 其客戶 需要...