新聞中心
Python Editor接口給出了處理所有個(gè)人信息的公共接口,其完整的代碼如清單2所示。PIM通過調(diào)用getUI()方法能夠獲得與用戶進(jìn)行交互的UI組件,希望大家能夠?qū)W到不少知識。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了遂昌免費(fèi)建站歡迎大家使用!
在工廠方法模式中,父類負(fù)責(zé)定義創(chuàng)建對象的公共接口,而子類則負(fù)責(zé)生成具體的對象,這樣做的目的是將類的實(shí)例化操作延遲到子類中完成,即由子類來決定究竟應(yīng)該實(shí)體化哪一個(gè)類。
在簡單工廠模式中,一個(gè)工廠類處于對產(chǎn)品類進(jìn)行實(shí)例化的中心位置上,它知道每一個(gè)產(chǎn)品類的細(xì)節(jié),并決定何時(shí)哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化。簡單工廠模式的優(yōu)點(diǎn)是能夠使客戶端獨(dú)立于產(chǎn)品的創(chuàng)建過程。并且在系統(tǒng)中引入新產(chǎn)品時(shí)無需對客戶端進(jìn)行修改,缺點(diǎn)是當(dāng)有新產(chǎn)品要加入到系統(tǒng)中時(shí),必須對工廠類進(jìn)行修改,以加入必要的處理邏輯。
簡單工廠模式的致命弱點(diǎn)就是處于核心地位的工廠類,因?yàn)橐坏┧鼰o法確定要對哪個(gè)類進(jìn)行實(shí)例化時(shí),就無法使用該模式,而工廠方法模式則可以很好地避免這一問題??紤]這樣一個(gè)應(yīng)用程序框架(Framework),它可以用來瀏覽各種格式的文檔,如TXT、DOC、PDF、HTML等,設(shè)計(jì)時(shí)為了讓軟件的體系結(jié)構(gòu)能夠盡可能地通用。
定義了Application和Document這兩個(gè)抽象父類,Python Editor接口客戶必須通過它們的子類來處理某一具體類型的文檔。例如,要想利用該框架來編寫一個(gè)PDF文件瀏覽器,必須先定義PDFApplication和PDFDocument這兩個(gè)類,它們應(yīng)該分別繼承于Application和Document。
Application的職責(zé)是對Document進(jìn)行管理,并且在需要時(shí)創(chuàng)建它們,比如當(dāng)用戶從菜單中選擇Open或者New的時(shí)候,Application就要負(fù)責(zé)創(chuàng)建一個(gè)Document的實(shí)例。顯而易見,被實(shí)例化的特定Document子類是與具體應(yīng)用相關(guān)的,因此Application無法預(yù)測哪個(gè)Document的子類將被實(shí)例化,它只知道一個(gè)新的Document何時(shí)(When)被創(chuàng)建。
但并不知道哪種(Which)具體的Document將被創(chuàng)建。此時(shí)若仍堅(jiān)持使用簡單工廠模式會出現(xiàn)一個(gè)非常尷尬的局面:框架必須實(shí)例化類,但它只知道不能被實(shí)例化的抽象類。解決的辦法是使用工廠方法模式,它封裝了哪一個(gè)Document子類將被創(chuàng)建的信息,并且能夠?qū)⑦@些信息從框架中分離出來。
Application的子類重新定義了Application的抽象方法createDocument(),并返回某個(gè)恰當(dāng)?shù)腄ocument子類的實(shí)例。我們稱createDocument()是一個(gè)工廠方法(factory method),因?yàn)樗浅P蜗蟮孛枋隽祟惖膶?shí)例化過程,即負(fù)責(zé)"生產(chǎn)"一個(gè)對象。
Python Editor接口定義了一個(gè)公共的構(gòu)造性方法(builder method)getEditor(),它返回一個(gè)Editor對象,其完整的代碼如清單1所示。任何一項(xiàng)個(gè)人信息都擁有自己獨(dú)立的用戶界面(Editor),負(fù)責(zé)獲取數(shù)據(jù)并在需要的時(shí)候進(jìn)行修改,而PIM***要做事情的只是通過Editable來獲得Editor,并利用它來對用戶輸入的數(shù)據(jù)進(jìn)行相應(yīng)的操作。
網(wǎng)站標(biāo)題:PythonEditor接口介紹說明
轉(zhuǎn)載源于:http://www.5511xx.com/article/cciijoh.html


咨詢
建站咨詢
