2015-02-12 95 views
2

我的問題是關於概念(我需要一些建議如何正確實施)。 我在構建UI時使用了MVC模式,目前這個UI服務於兩個插件,因爲它們應該使用的UI是相同的。所以這兩個插件調用這個用戶界面,這是工作正常。現在有第三個(和四個:)插件應該使用一些的UI控制和邏輯,所以而不是建立新的用戶界面這個插件的我想提供一些機制使用戶能夠決定他想要在屏幕上繪製哪個控件。所以目前我需要打破部分的看法,但我的問題是什麼是最好的方式來做到這一點? (從設計理念方面)如何從API擴展UI

的看法是從6控制所有的插件必須在默認情況下使用從他們身上,其餘的都是可選的構建。例如新的插件可以使用強制性的兩個,並提供另外兩個控制。

+0

如果我需要添加一些額外的標籤,請讓我知道 – 2015-02-12 08:15:38

+2

您能否顯示一些代碼? – Jamie 2015-02-15 11:32:38

回答

2

很難回答,不知道語言和平臺。

你的每個控件都有一個視圖和控制器。每個視圖/控制器都需要對模型的引用,該模型公開適合視圖顯示和控制器調用的數據和方法。所以問題是如何將每個插件連接到6個可能的控件的子集。

在你的情況下,我會創建6個接口,公開與6個控件相關的數據和方法。每個插件只實現該插件可能使用的接口。另外它會公開一個所有插件實現的標準接口。這個標準接口將提供它需要顯示的強制接口列表,以及它允許​​顯示的可選接口列表。

您的主視圖然後插入一個插件並要求提供強制性接口列表。它創建這些子控件並將相關的插件接口傳遞給每個子控件。然後看看可選的只是其中兩個用於顯示並掛鉤它們。

如果沒有更多細節,很難做到更精確。

2

你可以嘗試使用MVVM(Model,View,ViewModel)模式,它更方便剪切代碼,你可以在谷歌MVVM中搜索,這裏有大量的文章。