是否真正理解設(shè)計模式會影響到我們設(shè)計項目架構(gòu),項目的代碼結(jié)構(gòu),這些都對項目以后的維護(hù)起到至關(guān)重要的作用掂为。
簡單工廠模式
這種方法雖然簡單裕膀,但其實不是很好,不好是因為每次我們使用的時候都需要輸入一種類型勇哗,這就需要對字符串進(jìn)行容錯處理昼扛,一般我更喜歡用簡單的靜態(tài)工廠方法,這個在安卓中也普遍存在欲诺,PendingIntent就是一個很好的例子抄谐。
抽象工廠模式
上面的實體類(People,Dog)其實作為一個外部類創(chuàng)建就好了扰法,只是為了方便才創(chuàng)建成靜態(tài)內(nèi)部類斯稳。接下來我們講講抽象工廠,其實抽象工廠也沒有傳說中的那么的難理解
簡單工廠可以說只有一條生產(chǎn)線迹恐,自然而然要是突然想發(fā)展業(yè)務(wù)多生產(chǎn)一個東西挣惰,就需要對原來的生產(chǎn)線進(jìn)行改造,可能表現(xiàn)到代碼邏輯里面殴边,就僅僅是在switch里面加一個case憎茂,然后定義一種常量Type為大米,就可以投入使用了锤岸。雖然看起來很簡單竖幔,但是每次有擴展都要對舊的類進(jìn)行修改這是不提倡的。這與抽象工廠是偷,其實可以說更加貼近現(xiàn)實拳氢,工廠對一個產(chǎn)品就設(shè)置一條流水線,需要擴展的時候蛋铆,就擴展一條流水線馋评,通過這條流水線就可以生產(chǎn)產(chǎn)品了。流水線就是我們繼承抽象工廠實現(xiàn)的一個工廠類刺啦。
臥槽留特,創(chuàng)建個對象搞的那么復(fù)雜,寫這么多的接口和類玛瘸?蜕青!是的,并不是創(chuàng)建所有的實體類對象都需要使用工廠模式糊渊,但是如果有一個項目中的商品系統(tǒng)需要長期的迭代和維護(hù)右核,我們在一開始開發(fā)的時候就需要考慮到它的可擴展性。這些都是項目前期有經(jīng)驗的老司機們著手設(shè)計項目架構(gòu)的時候要考慮的東西渺绒。