偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Python Editor接口介紹說(shuō)明

開發(fā) 后端
Python Editor接口客戶必須通過(guò)它們的子類來(lái)處理某一具體類型的文檔。例如,要想利用該框架來(lái)編寫一個(gè)PDF文件瀏覽器.

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

在工廠方法模式中,父類負(fù)責(zé)定義創(chuàng)建對(duì)象的公共接口,而子類則負(fù)責(zé)生成具體的對(duì)象,這樣做的目的是將類的實(shí)例化操作延遲到子類中完成,即由子類來(lái)決定究竟應(yīng)該實(shí)體化哪一個(gè)類。

在簡(jiǎn)單工廠模式中,一個(gè)工廠類處于對(duì)產(chǎn)品類進(jìn)行實(shí)例化的中心位置上,它知道每一個(gè)產(chǎn)品類的細(xì)節(jié),并決定何時(shí)哪一個(gè)產(chǎn)品類應(yīng)當(dāng)被實(shí)例化。簡(jiǎn)單工廠模式的優(yōu)點(diǎn)是能夠使客戶端獨(dú)立于產(chǎn)品的創(chuàng)建過(guò)程。并且在系統(tǒng)中引入新產(chǎn)品時(shí)無(wú)需對(duì)客戶端進(jìn)行修改,缺點(diǎn)是當(dāng)有新產(chǎn)品要加入到系統(tǒng)中時(shí),必須對(duì)工廠類進(jìn)行修改,以加入必要的處理邏輯。

簡(jiǎn)單工廠模式的致命弱點(diǎn)就是處于核心地位的工廠類,因?yàn)橐坏┧鼰o(wú)法確定要對(duì)哪個(gè)類進(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è)抽象父類,Python Editor接口客戶必須通過(guò)它們的子類來(lái)處理某一具體類型的文檔。例如,要想利用該框架來(lái)編寫一個(gè)PDF文件瀏覽器,必須先定義PDFApplication和PDFDocument這兩個(gè)類,它們應(yīng)該分別繼承于Application和Document。

Application的職責(zé)是對(duì)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無(wú)法預(yù)測(cè)哪個(gè)Document的子類將被實(shí)例化,它只知道一個(gè)新的Document何時(shí)(When)被創(chuàng)建。

但并不知道哪種(Which)具體的Document將被創(chuàng)建。此時(shí)若仍堅(jiān)持使用簡(jiǎn)單工廠模式會(huì)出現(xiàn)一個(gè)非常尷尬的局面:框架必須實(shí)例化類,但它只知道不能被實(shí)例化的抽象類。解決的辦法是使用工廠方法模式,它封裝了哪一個(gè)Document子類將被創(chuàng)建的信息,并且能夠?qū)⑦@些信息從框架中分離出來(lái)。

Application的子類重新定義了Application的抽象方法createDocument(),并返回某個(gè)恰當(dāng)?shù)腄ocument子類的實(shí)例。我們稱createDocument()是一個(gè)工廠方法(factory method),因?yàn)樗浅P蜗蟮孛枋隽祟惖膶?shí)例化過(guò)程,即負(fù)責(zé)"生產(chǎn)"一個(gè)對(duì)象。

Python Editor接口定義了一個(gè)公共的構(gòu)造性方法(builder method)getEditor(),它返回一個(gè)Editor對(duì)象,其完整的代碼如清單1所示。任何一項(xiàng)個(gè)人信息都擁有自己獨(dú)立的用戶界面(Editor),負(fù)責(zé)獲取數(shù)據(jù)并在需要的時(shí)候進(jìn)行修改,而PIM***要做事情的只是通過(guò)Editable來(lái)獲得Editor,并利用它來(lái)對(duì)用戶輸入的數(shù)據(jù)進(jìn)行相應(yīng)的操作。

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語(yǔ)法比較
  3. Python學(xué)習(xí)資料介紹分享
  4. Python學(xué)習(xí)經(jīng)驗(yàn)談:版本、IDE選擇及編碼解 決方案
  5. 淺析Python的GIL和線程安全
責(zé)任編輯:chenqingxiang 來(lái)源: 博客園
相關(guān)推薦

2010-02-02 13:28:46

Python變量

2010-02-02 14:54:28

Python語(yǔ)法

2010-02-03 17:37:30

Python語(yǔ)法

2010-02-22 16:16:14

Python語(yǔ)法

2010-02-01 14:57:43

Python接口

2010-02-02 14:42:38

Python線程

2010-02-22 11:14:43

Python編寫

2010-02-22 14:28:10

Python程序

2010-02-22 17:54:07

Python工具

2010-03-01 13:13:02

Python應(yīng)用線程

2010-02-24 17:22:59

Python項(xiàng)目

2010-02-01 17:11:45

Python 解釋器

2010-02-22 09:33:43

Python語(yǔ)言

2010-02-23 14:41:28

Python模塊

2010-02-01 18:23:54

Python

2010-02-22 17:46:57

Python應(yīng)用程序

2010-02-23 10:50:11

Python 測(cè)試框架

2010-02-24 16:44:58

Python 函數(shù)

2010-02-26 10:07:55

Python編程語(yǔ)言

2010-02-26 13:56:08

Python RSS
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)