自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python Editor接口介紹說明

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

Python Editor接口給出了處理所有個人信息的公共接口,其完整的代碼如清單2所示。PIM通過調用getUI()方法能夠獲得與用戶進行交互的UI組件,希望大家能夠學到不少知識。

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

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

簡單工廠模式的致命弱點就是處于核心地位的工廠類,因為一旦它無法確定要對哪個類進行實例化時,就無法使用該模式,而工廠方法模式則可以很好地避免這一問題??紤]這樣一個應用程序框架(Framework),它可以用來瀏覽各種格式的文檔,如TXT、DOC、PDF、HTML等,設計時為了讓軟件的體系結構能夠盡可能地通用。

定義了Application和Document這兩個抽象父類,Python Editor接口客戶必須通過它們的子類來處理某一具體類型的文檔。例如,要想利用該框架來編寫一個PDF文件瀏覽器,必須先定義PDFApplication和PDFDocument這兩個類,它們應該分別繼承于Application和Document。

Application的職責是對Document進行管理,并且在需要時創(chuàng)建它們,比如當用戶從菜單中選擇Open或者New的時候,Application就要負責創(chuàng)建一個Document的實例。顯而易見,被實例化的特定Document子類是與具體應用相關的,因此Application無法預測哪個Document的子類將被實例化,它只知道一個新的Document何時(When)被創(chuàng)建。

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

Application的子類重新定義了Application的抽象方法createDocument(),并返回某個恰當的Document子類的實例。我們稱createDocument()是一個工廠方法(factory method),因為它非常形象地描述了類的實例化過程,即負責"生產"一個對象。

Python Editor接口定義了一個公共的構造性方法(builder method)getEditor(),它返回一個Editor對象,其完整的代碼如清單1所示。任何一項個人信息都擁有自己獨立的用戶界面(Editor),負責獲取數據并在需要的時候進行修改,而PIM***要做事情的只是通過Editable來獲得Editor,并利用它來對用戶輸入的數據進行相應的操作。

【編輯推薦】

  1. 如何使Python嵌入C++應用程序?
  2. 深入探討Ruby與Python語法比較
  3. Python學習資料介紹分享
  4. Python學習經驗談:版本、IDE選擇及編碼解 決方案
  5. 淺析Python的GIL和線程安全
責任編輯:chenqingxiang 來源: 博客園
相關推薦

2010-02-03 17:37:30

Python語法

2010-02-02 14:54:28

Python語法

2010-02-02 13:28:46

Python變量

2010-02-22 16:16:14

Python語法

2010-02-01 14:57:43

Python接口

2010-02-02 14:42:38

Python線程

2010-02-24 17:22:59

Python項目

2010-03-01 13:13:02

Python應用線程

2010-02-22 17:54:07

Python工具

2010-02-22 14:28:10

Python程序

2010-02-22 11:14:43

Python編寫

2010-02-23 14:41:28

Python模塊

2010-02-22 09:33:43

Python語言

2010-02-01 17:11:45

Python 解釋器

2010-03-01 18:07:53

Python語言

2010-02-22 17:46:57

Python應用程序

2010-02-26 13:56:08

Python RSS

2010-02-01 18:23:54

Python

2010-02-26 10:07:55

Python編程語言

2010-02-24 16:44:58

Python 函數
點贊
收藏

51CTO技術棧公眾號