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

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


咨詢(xún)
建站咨詢(xún)
