記錄我的所做所思
一:case context:????一個Pizza管理系統(tǒng)?
???????? 問題:紅色字體部分可能會modification(增加新的或刪除舊的),所以必須把這部分包裝起來成一個獨立的類。二:SimpleFactory模式??????
??? 優(yōu)點:因為是一個獨立的類,所以可以共享,一處修改即可,不需修改客戶端。??? 缺點:對"close-opening"原則支持不夠,如有新產(chǎn)品加入還是要改Factory中的代碼。??? 實例:DateFormat類:??????????????
三:Factory Method模式????????當構(gòu)建對象部分需求發(fā)生變化,如現(xiàn)在pizza分為美國和意大利兩種口味。??????? 解決辦法:1:一個抽象創(chuàng)建基類,abstract Product create();??????????????????????????? 2:具體類來實現(xiàn)create方法????????????????????????????3:抽象產(chǎn)品基類。????????????????????????????4:具體產(chǎn)品類。??
The?Factory Method Pattern defines an interface for creation?an object,but let subclasses decide which class to? instantiate.Factory Method?lets a class defer instantiation to subclasses.四:Abstract Factory???? 抽象工廠模式和工廠方法模式的主要區(qū)別是,工廠方法模式針對的是一個產(chǎn)品等級結(jié)構(gòu),而抽象工廠方法對應多個產(chǎn)品等級結(jié)構(gòu)。????? ? 實例:創(chuàng)建分屬不同操作系統(tǒng)的視窗構(gòu)件。??????????
Copyright @ zhoumin Powered by: .Text and ASP.NET Theme by: .NET Monster