設計模式(一) 工廠模式

2021-07-30 20:50:54 字數 2638 閱讀 1062

設計模式(design pattern)是一套被反覆使用、多數人知曉的、經過分類編目的、**設計經驗的總結。

使用設計模式是為了可重用**、讓**更容易被他人理解、保證**可靠性。 毫無疑問,設計模式於己於他人於系統都是多贏的,設計模式使**編制真正工程化,設計模式是軟體工程的基石,如同大廈的一塊塊磚石一樣。

專案中合理的運用設計模式可以完美的解決很多問題,每種模式在現在中都有相應的原理來與之對應,每乙個模式描述了乙個在我們周圍不斷重**生的問題,以及該問題的核心解決方案,這也是它能被廣泛應用的原因。

一、設計模式的分類

建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、

建造者模式、原型模式。

結構型模式,共七種:介面卡模式、裝飾器模式、**模式、外觀模式、

橋接模式、組合模式、享元模式。

行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、

迭代器模式、責任鏈模式、命令模式、備忘錄模式、

狀態模式、訪問者模式、中介者模式、直譯器模式。

正文工廠方法模式(factory method)

工廠方法模式分為三種:普通工廠模式   多個工廠方法模式   靜態工廠方法模式

1.1、普通工廠模式,就是建立乙個工廠類,對實現了同一介面的產品類進行例項的建立.

例子://用手機打**或者座機

public inte***ce calltelephone

//打**實現類

public class phone implements calltelephone

} //打**實現類

public class mobile implements calltelephone

} //建立工廠類

public class callfactory else if ("mobile".equals(type)) else

} }

//測試類

public class factorytest

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

//將上面的**做下修改,改動下callfactory類就行

//這個就不用根據使用者傳的字串類建立物件了

public class callfactory

public calltelephone producemobile()

}//測試類

public class factorytest

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

public class callfactory

public static calltelephone producemobile()

} //測試類

public class factorytest

}

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

//打**介面

public inte***ce calltelephone

//打**的實現類

public class phone implements calltelephone

} //打**的實現類

public class mobile implements calltelephone

} //給工廠類乙個介面

public inte***ce factory

//兩個工廠的實現類

public class phonefactory implements factory

} public class mobilefactory implements factory

} //測試類

public class test

} 注:這個模式的好處就是,如果你現在想增加乙個功能:用其他方式打**,則只需做乙個實現類實現calltelephone介面, 同時做乙個工廠類,實現factory介面,就ok了,無需去改動現成的**。這樣做,拓展性較好。

工廠模式另類

某些情況時,用反射是可以替代的,比如以上的功能,皆可用下面的方式替換。如果有新的功能方式打**,比如電腦等,直接寫computer implements calltelephone介面即可, 並且不用再寫新的工廠類.使用的時候,只需要向工廠方法傳入乙個類的class就可以。

測試

設計模式 工廠設計模式 一

工廠設計模式 就是當我們需要批量建立多種型別的物件時 需要用到,主要分為三種形式 1 靜態工廠,也叫簡單工廠模式,就是你傳乙個型別我建立對應的型別,spring中主要用到的就是這種模式 不多說,直接上 通用的產品介面,product 這個看需求,也可以定義為抽象類,根據你的物件之間的關係來定的 pa...

設計模式(一) 工廠模式

在物件導向程式設計中,最通常的方法是乙個new操作符產生乙個物件例項,new操作符就是用來構造物件例項的。但是在一些情況下,new操作符直接生成物件會帶來一些問題。舉例來說,許多態別物件的創造需要一系列的步驟 你可能需要計算或取得物件的初始設定 選擇生成哪個子物件例項 或在生成你需要的物件之前必須先...

設計模式(一) 工廠模式

編寫出來是為了給別人 client 呼叫的 所以,為了簡化 的協作使用及管理維護,必須想盡辦法簡化 邏輯,實現必要的 分離 下面我分別介紹幾種工廠模式。我們使用手機來作為測試,首先上 圖 public class iphone public class huawei public class opp...