2009-10-14 108 views
2

我的一羣人正在開始的一個項目將集中在使用非常特定於用戶的插件上。我們試圖從本質上創建一個應用程序,在沒有插件的情況下,它只不過是一個運行環境,因此將由添加特定於用戶的插件驅動。需要插件驅動設計技術?

我在這個圍繞插件設計應用程序的領域經驗不足。我應該如何開始創建一個基本的抽象應用程序的過程,然後創建這些「動態」的用戶特定插件以供應用程序使用?

+0

語言在這裏可能是相關的 - 不同的語言有不同的技術,最適合插件。 – hobbs 2009-10-14 04:29:12

+0

建築宇航的好例子:-) http://www.joelonsoftware.com/articles/fog0000000018.html – 2009-10-14 13:41:31

回答

2

正如'hobbs'指出的那樣,知道語言將有利於獲得更好的答案!但是無論如何,我會給你詳細介紹在Java或任何其他面嚮對象語言中經常使用的命令設計模式。

Command Design Pattern - WikipediaCommand Design Pattern - Java Tip 68(用於實施細則)

我經常使用此模式時,我知道我將要在一個通用的方法(有時當我不知道所有的細節,在運行「插件」那個時間點)。有了更多的規格和/或安全限制,你可能希望改變這種模式,幷包括沙箱限制等等,這些都取決於你!

您的客戶將首先使用您提供的界面編寫插件(請參閱上面的鏈接)。使用編譯後的類,您的客戶端就可以將其插件放入文件夾中。

當您的應用程序準備好運行插件時,您可以加載插件候選列表(xml文件或掃描特定目錄中的類文件)並加載每個類以逐一執行它們。

您可以決定是否要以特定順序或並行方式運行這些插件(線程化設計)。

請注意,如果您的插件必須訪問特定的狀態或API,則可以將其作爲參數提供給您的插件。

所有這些都很好用,我相信它可以很容易地適應幾乎任何語言。

祝你好運,

Jeach!