天天看點

設計模式--工廠和政策的差別

工廠(Factory)模式我們可以做如下了解,假設有一個Audi的公司生産汽車(似乎也不用假設了),它掌握一項核心的技術就是生産汽車,另一方面,它生産的汽車是有不同型号的,并且在不同的生産線上進行組裝。當客戶通過銷售部門進行預定後,Audi公司将在指定的生産線上為客戶生産出它所需要的汽車。

政策(Strategy)模式在結構上與工廠模式類似,唯一的差別是工廠模式執行個體化一個産品的操作是在服務端來做的,換句話說用戶端傳達給服務端的隻是某種辨別,服務端根據該辨別執行個體化一個對象。而政策模式的用戶端傳達給服務端的是一個執行個體,服務端隻是将該執行個體拿過去在服務端的環境裡執行該執行個體的方法。這就好比一個對汽車不甚了解的人去買車,他在那一比劃,說要什麼什麼樣的,銷售部門根據他的這個“比劃”來形成一份訂單,這就是工廠模式下的工作方式。而政策模式下那個顧客就是個行家,他自己給出了訂單的詳細資訊,銷售部門隻是轉了一下手就交給生産部門去做了。通過兩相對比,我們不難發現,采用工廠模式必須提供足夠靈活的銷售部門,如果使用者有了新的需求,銷售部門必須馬上意識到這樣才可以做出合适的訂單。是以倘一款新車出來了,生産部門和銷售部門都需要更新,對顧客來說也需要更新對新車的描述是以需要改動的地方有三處。而政策模式中的銷售部門工作比較固定,它隻負責接受訂單并執行特定的幾個操作。當一款新車出來時,隻需要對服務端的生産部門和用戶端的代碼進行更新,而不需要更新銷售部門的代碼。

參考:

設計模式--工廠和政策的差別(轉) - 走看看