1. 程式人生 > >日月忽其不淹兮,春與秋其代序 認知即成長

日月忽其不淹兮,春與秋其代序 認知即成長

       今天看到專案裡打折促銷的需求,想到《大話設計模式》裡有這樣一個案例,遂將工廠模式研究了一番

       工廠模式可分為三種:簡單工廠模式、普通工廠模式、抽象工廠模式

簡單工廠模式:簡單工廠通過switch...case語句封裝了建立物件的過程,在工廠類中建立單一物件,簡單工廠封裝了例如根據“滿減”、“折扣”進行動態建立物件,如果後期增加其它優惠方式,則需要修改工廠類,這違反了開放-封閉原則,

在《大話設計模式》使用了簡單工廠與策略模式結合的方式進行促銷

       工廠模式:工廠模式把建立物件的過程封裝成類,自然而然建立物件的工作由客戶端來控制,這樣做克服了簡單工廠模式的缺點(開放-封閉原則),缺點:要新增過多的類

      抽象工廠模式:抽象工廠模式與普通工廠模式的不同---->普通工廠模式實現單個產品建立,而抽象工廠模式實現單個產品系列的操作,最佳實踐是用簡單工廠簡化抽象工廠,減少類的建立,如果說違反開放-封閉原則,那麼使用反射方式進行優化,在java裡可使用class.forName(包名)獲取類,然後使用newInstance()建立類的例項,同理簡單工廠模式也可如此優化