2010-05-04 46 views
1

我正在尋找示例(設計示例),顯示如何使用對象(特別是抽象基類和/或接口,也稱爲'協議'for smallTabler)來設計文檔管理架構在一個大的字處理器,電子表格,矢量圖形或出版包,或辦公生產力(非數據庫)的應用程序,可支持多達以下儘可能的:面向大型文檔的應用程序的面向對象設計示例

  • 任何開源項目,將是理想的,因爲我正在尋找設計實例,所以實現的語言並不重要,但是支持「接口」的面嚮對象語言是必須的。我知道至少有十幾種語言,我願意研究任何應用程序的來源。

  • 使用「接口」的可能鬆散地施塗於XPCOM或COM接口,或.NET接口,或甚至使用純虛擬(虛擬+抽象)基類爲缺乏的能力OOP語言的聲明一個不同於類的接口。

  • 我主要是爲文檔,IDocument,各種文檔視圖(IDocumentView)尋找一個健壯,徹底和靈活的實現,以及在這種情況下任何操作都有意義。

  • 我特別感興趣的是有問題的產品是真實產品的情況。例如,如果任何熟悉OpenOffice的人都可以告訴我代碼是否包含良好的示例設計。

  • 我正在尋找概述此類應用程序接口設計的設計文檔。例如,如果openoffice電子表格具有這樣的界面設計,那麼這可能是最好的情況,因爲它是一個廣泛使用的真實世界設計,擁有數百萬用戶,而不是教科書示例,這是最小的, 。我知道Mozilla平臺使用XPCOM,它的設計非常「面向接口」,但我正在尋找更多的文字設計類型的「文字處理器」或「電子表格」類型,而不是Web瀏覽器。

  • 我特別感興趣的是用於訪問數據和元數據的接口,如標記(屬性如粗體,斜體和字體大小),以及在文檔中搜索和查找命名實體的能力。

+0

這是一個蹩腳的問題,出於某種原因? – 2010-05-06 13:13:43

+1

是啊,我認爲這太大/太具體,太平淡 – zvolkov 2010-05-29 00:42:05

回答

1

因爲它是你想要看的模型,所以你會發現在Microsoft Office和OpenOffice中都有很好的,可行的和可靠的模型。

在較小規模上,有Java swing,它具有靈活的JEditorPane組件。這是一個基於可靠抽象的靈活框架,並提供了默認實現,可以進入文本佈局和格式的細節。它在關鍵領域基本上是面向接口的:文檔模型,行爲和表示。

  • Document代表文檔數據,文檔操作和更改通知。 StyledDocument是用於將格式樣式添加到文檔內容的子接口。文檔由元素組成,可以按層次結構排列。

  • Action定義可以在模型上調用的行爲。

  • View s(抽象類)定義瞭如何呈現文檔模型的元素。像元素一樣,視圖可以是分層的。

  • EditorKit將上述所有內容連同加載/保存功能一起提供編輯給定類型文檔所需的全部內容。

有基本styled documentsHTML documents默認實現這些值得探討看到的事情引擎蓋下是如何工作的。這些資源可通過docjardownload(通過Mercurial)進行瀏覽,並與JDK一起分發。

NetBeans是一個用Java構建的IDE,它有許多不同的編輯器。 netbeans editors構建在Swing EditorKit默認實現之上。這裏有一個tutorial創建一個簡單的自定義編輯器,可以讓你洞察編輯器的功能和實現。

談到電子表格,OpenOffice項目概述了Spreadshet Document模型 - text documents的相應頁面 - 均來自OpenOffice Developers Guide

那裏有相當多的材料,我希望是相關的,並給你很多想法!

+0

這是非常好的。我希望這會被標記爲這個問題的答案。 – 2010-06-02 20:38:28

+0

我被OO API中的所有X前綴一時混淆了,並想知道它們的含義。在這裏找到一些概述: http://api.openoffice.org/docs/DevelopersGuide/Appendix/IDLDesignGuide/IDLDesignGuide.xhtml – 2010-06-02 20:46:20

+0

幹得好,謝謝。 – 2010-06-03 15:03:46