我正在尋找一些建議來處理用戶界面,特別是網絡用戶界面,其中多種不同的設置和切換會改變顯示給用戶的內容。設置與用戶綁定,因此每個用戶都有獨特的體驗(取決於各種因素)。現有的使用大量條件語句的方法;顯然不會縮放並且導致維護噩夢。什麼是在UI中處理大量排列的好方法?
我將實現MVC模式來區分顧慮,但我必須想象有一種設計模式或配置高動態視圖的最佳實踐。
基於用戶憑據,我有:
- 功能,可以打開和關閉
- 特點進行切換可以擴展或增強
- 認爲一個複選框列表中的位置一個複選框對一個組是不可見的,整個列表可能對其他組不可用。 (就像選項列表,用戶不能訪問到所有這些,也許有些是禁用,也許有些是看不見的。)
的問題是:我怎麼保持視圖儘可能地乾淨,同時保持觀點的背景和意圖?我是否創建單獨的「處理程序」來輸出特定的HTML(如果它們通過授權提供者鏈接在一起)?如果是這樣,我如何使用多個組共享的功能,但可能會將略微變爲?
我不知道它關係到我在開發什麼平臺,因此任何特定語言或框架中的示例或建議都可以。
編輯
例如,說我有ProductViewModel
(在C#):
public class ProductViewModel {
public bool DisplayPrice { get; set; }
}
在我看來的話,我可以檢查是否Model.DisplayPrice == true
,如果是這樣,顯示產品的價格。在這個級別,我不在乎爲什麼它正在顯示。所以,這將取代像if (UserInRole("Vendor") || UserInRole("Distributor"))
。
很明顯,我需要一些方法來改變基於上下文的設置。理想情況下,我想避免使用條件語句if (UserInRole("Vendor") || UserInRole("Distributor"))
,因爲條件列表可以快速增長。例如,假設我想向供應商顯示價格,但只有當他們有VIP訪問權限,並且已經超過30天的用戶,並且已經進行了以前的購買,並且...
任何最佳實踐或建議,用於在運行時修改/堆棧設置,每個用戶?有大量排列組合實現「偏好」的經驗的人?
也許我正在剋制這一點。 – 2010-08-24 20:56:46