【设计模式 05】工厂方法模式
生活随笔
收集整理的這篇文章主要介紹了
【设计模式 05】工厂方法模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工廠方法模式
define an interface or abstract class for creating an object but let the subclasses decide which class to instantiate.
參考:
簡單工廠的問題
簡單工廠把可能很復雜的對象創建過程分裝在工廠類內部,客戶端只需要給簡單工廠一個“類的標志”,工廠類就能動態返回一個實例化對象,這樣的好處是簡化了客戶端操作,從客戶端按說,符合開閉原則,但每次添加新的產品,都需要修改工廠類,添加新的判斷邏輯,不符合開閉原則。為了解決簡單工廠的這個問題,工廠方法中會先定義一個創建對象的接口或抽象類,然后讓子類去決定實例化哪個類。
工廠方法的優點
適用場景
例
所有工廠類的接口:
public interface IPhoneFactory {BasePhone createPhone(); }具體的工廠實現類中實例化產品:
public class HonorFactory implements IPhoneFactory {@Overridepublic BasePhone createPhone() {BaseCPU cpu = new KirinFactory().createCPU();BaseCamera camera = new LeicaFactory().createCamera();return new Honor(cpu, camera);} } public class OnePlusFactory implements IPhoneFactory {@Overridepublic BasePhone createPhone() {BaseCPU cpu = new QualcommFactory().createCPU();BaseCamera camera = new SonyFactory().createCamera();return new OnePlus(cpu, camera);} }客戶端只需要知道相關接口或抽象類即可,無需關心產品細節
public class Consumer {public static void main(String[] args) {BasePhone onePlus = new OnePlusFactory().createPhone();onePlus.printConfig();BasePhone honor = new HonorFactory().createPhone();honor.printConfig();} }GitHub | 完整代碼
總結
以上是生活随笔為你收集整理的【设计模式 05】工厂方法模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 车流检测之halcon光流法算法实现
- 下一篇: 数学家刘徽李善兰陈景润华罗庚