Factory Method(工厂方法)--对象创建型模式
Factory Method(工廠方法)–對象創(chuàng)建型模式
一、意圖
定義一個用于創(chuàng)建對象的接口,讓子類決定實例化哪一個類。Factory Method使一個類的實例化延遲到其子類。
二、動機
1.在軟件系統(tǒng)中,經(jīng)常面臨著創(chuàng)建對象的工作;由于需求的變化, 需要創(chuàng)建的對象的具體類型經(jīng)常變化。
2.如何應(yīng)對這種變化?如何繞過常規(guī)的對象創(chuàng)建方法(new),提供一 種“封裝機制”來避免客戶程序和這種“具體對象創(chuàng)建工作”的緊 耦合?
三、適用性
1.當(dāng)一個類不知道它所必須創(chuàng)建對象的類型的時候。
2.當(dāng)一個類希望由子類來指定它所創(chuàng)建的對象的時候。
3.當(dāng)類創(chuàng)建對象的職責(zé)委托給多個幫助子類的中的某一個,并且你希望將哪一個幫助子類是代理著這一信息局部變化的時候。
四、結(jié)構(gòu)
五、效果
1.為子類提供掛鉤(hook)。
2.連接平行的類層次。
六、實現(xiàn)
1.Creator類是一個抽象并且不提供它所聲明的方法的實現(xiàn);Creator類是一個具體的類而且為工廠方法提供缺省的實現(xiàn)。
2.參數(shù)化工廠方法。
3.特定語言的變化和問題。
4.使用模板已避免創(chuàng)建子類。
5.命名約定。
七、要點總結(jié)
1.Factory Method模式用于隔離類對象的使用者和具體類型之間的 耦合關(guān)系。面對一個經(jīng)常變化的具體類型,緊耦合關(guān)系(new)會導(dǎo) 致軟件的脆弱。
2.Factory Method模式通過面向?qū)ο蟮氖址?#xff0c;將所要創(chuàng)建的具體對象工作延遲到子類,從而實現(xiàn)一種擴展(而非更改)的策略,較好地解決了這種緊耦合關(guān)系。
3.Factory Method模式解決“單個對象”的需求變化。缺點在于要求創(chuàng)建方法/參數(shù)相同。
八、舉例說明:
想造一個椅子,具體怎么造等客戶來了才決定。主要思想將實現(xiàn)延遲到子類實現(xiàn)。
本文為李建忠設(shè)計模式視頻的筆記以及《設(shè)計模式-可復(fù)用面向?qū)ο蟮能浖幕A(chǔ)》和自己的部分見解
總結(jié)
以上是生活随笔為你收集整理的Factory Method(工厂方法)--对象创建型模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 减肥可以吃空心菜吗
- 下一篇: Prototype(原型)--对象创建模