老黑:小白呀,怎麼每次見你都是愁眉苦臉的呀,女朋友跟别人跑了啊?
小白:哎、别提了。
老黑:我去,女朋友還真跑了啊?
小白:我一苦逼996程序員,哪裡來的女朋友啊,家裡的土豆滞銷了,打包節奏太慢了,蔬菜堆積了,可愁死啦。
老黑:你家還種土豆呀,你上次不是說家裡是種大白菜的嘛?
小白:我家裡啥都種啊,土豆、白菜、馬鈴薯多着呢。家裡人少,打包太慢了,蔬菜滞銷了,好不容易種出來的蔬菜,賣的時候卻出現問題了。
老黑:急也沒有辦法嘛,那我考考你,你家種了這麼多東西,本來種植蔬菜就不容易了,還要自己去打包這麼種類的蔬菜,如果是咱們在寫程序的時候遇到話該怎麼改進呢?
小白:你是想說設計者模式之工廠模式吧?
老黑:漂亮,能用代碼寫出來嗎?
小白:哎呀,這個可簡單啦
找到一個工廠讓他們幫我們打包即可,核心代碼如下:
我們作為種植戶,不需要去關心打包蔬菜的細節,隻需要得到他結果即可
小白:老黑怎麼樣?工廠模式出來了把
老黑:寫确實是寫出來了,但是所有的蔬菜都交給一個工廠去打包販賣這樣真的好嘛?
小白:你是說,專人專事嗎?白菜交給白菜工廠打包販賣,土豆交給土豆工廠打包販賣嘛。這還不簡單。創建一個Factory工廠,實現白菜、土豆、馬鈴薯三個工廠即可。
代碼如下:
對于我們種植戶來說,要打包白菜就找白菜工廠幫忙,打包土豆就找土豆工廠幫忙
小白:老黑,怎麼樣?搞定了噻。
老黑:思路沒有錯,專人專責,沒什麼毛病,但是你不覺得麻煩嗎?土豆一個工廠,白菜一個工廠,多一樣蔬菜就多一個工廠咯?你家人賣蔬菜要知道多少個打包廠的電話号碼啊?
小白:确确實實、是這樣的,有什麼好的辦法嗎?
老黑:來來來,我給你介紹介紹抽象工廠模式,我們定義一個抽象的工廠類,就像咱們村的村長,約定了來推廣打包工廠的老闆,必須要滿足擁有多個打包工廠,才能進村推廣,大老闆A家裡開了多個蔬菜加工廠,正因為老闆A能來我們村推廣,他滿足了村長定下的規範,所以我們的蔬菜他都能打包,我們也不需要單獨再去找其他打包廠子了。
代碼如下:
老黑:對于我們種植戶來說,我們也不需要知道打包的細節,也不需要知道不同種類的打包工廠,也就是既然能來我們村推廣的老闆,他就肯定有我們想要的蔬菜打包工廠,能給我們想要的打包結果。
代碼如下:
老黑:針對種植戶來說,使用抽象工廠類是不是簡單多了?
小白:好像是呢?有點迷,感覺用個設計者模式要多創建好多類額?感覺變成更加複雜了?好像還沒有理解透徹。
老黑:這23中設計者模式,是衆多軟件開發人員,經過相當長的一段時間的試驗和錯誤總結出來的,好好去理解吧。
作者是奮鬥在最基層的開發人員,如果你覺得本文還不錯,您的關注、轉發将是我最大的功力。如果文中有邏輯錯誤,勞煩您不吝指出,我們一起學習,緻敬同行的您。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!