2017.4.9 工廠模式1

先是大概看了下,介紹工廠模式的篇幅有些略長啊,有些不太愿意看了。
在書中先是介紹了“簡單工廠”,就是利用一個方法生成實例對象,在別的語言中通常用靜態(tài)實現(xiàn),在OC中往往是利用+標(biāo)識的類方法實現(xiàn),簡單的理解就是避免用new生成實例的方法。直接用類方法進行生成新當(dāng)前類實例的方法被書中介紹成“簡單工廠方法”。
根據(jù)書中的定義:
通過讓子類決定該創(chuàng)建的對象是什么,來達到將對象創(chuàng)建的過程封裝的目的--------工廠方法模式
如果按照該定義作為正確評判工廠方法模式的正確準(zhǔn)則的話,我們用+標(biāo)識的方法,僅僅是類方法,并非是某一種設(shè)計模式,并且書中介紹簡單工廠模式僅僅是大家約定俗成的一種書寫習(xí)慣,談不上是什么模式。
但是核心思想都是我們調(diào)用直接調(diào)用一個方法去生成實例,相比我們直接使用new 進行實例化有什么好處呢?
好處就是 我們可以更改這個方法的具體實現(xiàn),并且不會更改原有調(diào)用方的代碼邏輯,這也體現(xiàn)了封閉的原則,我們可以在該方法中實例化出對應(yīng)的子類,也就是調(diào)用方從來不關(guān)心具體是哪個實例,只要我能調(diào)用出對應(yīng)的方法就好。利用多態(tài),做到更改函數(shù)的具體實現(xiàn),而這樣做的一切,都不會影響調(diào)用方--------即調(diào)用方可以不更改任何代碼,僅僅更改工廠函數(shù)(瞎起的名,懂這個意思就好)具體生成子類的策略,就能實現(xiàn)處理不同場景的功能,這樣的一切更改對于調(diào)用方 都是無感知的。
OO的封裝、繼承、多態(tài)思想還需要加強,多態(tài)的影子中在設(shè)計模式中太常見了。
值得注意的是,在我當(dāng)初學(xué)這個模式的時候有些想不通的是,直接在我們直接在調(diào)用類的等號左邊直接用父類,等號右邊直接實例化子類不也是達到了同樣的效果么?調(diào)用方的代碼就也就改了一處,后來發(fā)現(xiàn)這種想法是略傻逼的。在代碼實現(xiàn)上判斷耦合程度最簡單的方式就是看#import引入的類是否多,如果引入過多的類則證明改類會和很多類都有聯(lián)系,即和很多類存在耦合,如果按照剛才方式,做了一件事不僅引入了父類也引入了子類,相比別人做一件事只引入一個類是不是辦的優(yōu)點傻逼呢?
所以具體的實例化過程還是都放在工廠方法中實現(xiàn)比較穩(wěn)妥,這樣調(diào)用方僅僅引入父類即可,而且一行代碼都不用更改!
盡量以后設(shè)計的時候,盡量多考慮依賴接口,而不是依賴實現(xiàn)編程,這是為了以后即使需要變動,盡量保證變動較少的原則。這些目前看都是簡單工廠所做的,工廠模式 目前還沒真理解,只是有點模糊的理解,屬于半吊子階段中。

一個正式的工廠方法模式的介紹:
定義一個創(chuàng)建對象的接口,但由子類決定要實例化的類是哪一個,工廠方法讓類吧實例化推遲到子類。
就是用方法封裝了實例化的過程,調(diào)用方都會當(dāng)作父類去使用,而實際實例了哪個類都是由工廠函數(shù)決定了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,677評論 19 139
  • 設(shè)計模式基本原則 開放-封閉原則(OCP),是說軟件實體(類、模塊、函數(shù)等等)應(yīng)該可以拓展,但是不可修改。開-閉原...
    西山薄涼閱讀 4,086評論 3 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,806評論 18 399
  • 設(shè)計模式匯總 一、基礎(chǔ)知識 1. 設(shè)計模式概述 定義:設(shè)計模式(Design Pattern)是一套被反復(fù)使用、多...
    MinoyJet閱讀 4,095評論 1 15
  • 現(xiàn)在不打卡了,改為每天日常,無需在疊加日子,因為讓自己每天不是任務(wù),是日常,堅持做些有意義的事 練字,記單詞記單詞...
    雷帥帥閱讀 224評論 0 0

友情鏈接更多精彩內(nèi)容