我正在寻找一些处理用户界面的建议,特别是web用户界面,在这里,许多不同的设置和切换会更改显示给用户的内容。这些设置与用户相关,因此每个用户都有独特的体验(取决于各种因素)。使用过多条件语句的现有方法;显然不可扩展,而且会造成维护的噩梦。
我将实现MVC模式来分离关注点,但我必须设想有一种设计模式或最佳实践来配置高度动态的视图。
基于用户凭据,我有:
-
可以开关的功能
-
功能可以是
扩展的
增强
-
考虑一个复选框列表,其中一个复选框对于一个组不可见,而整个列表对于其他组可能不可用。(就像一个选项列表,用户不能访问所有选项;可能有些选项被禁用,有些选项不可见。)
问题是:在维护视图的上下文和意图的同时,如何保持视图尽可能干净?我是否创建输出特定HTML的单独“处理程序”(如果它们通过某个授权提供程序链接在一起)?如果是,我如何处理在多个组之间共享但可能更改的功能
轻微地
从一个到另一个?
我不知道我是在哪个平台上开发的,所以用任何特定的语言或框架来举例或提出建议都很好。
编辑
ProductViewModel
(用C#)表示:
public class ProductViewModel {
public bool DisplayPrice { get; set; }
}
在我看来,我可以检查
Model.DisplayPrice == true
,如果是,则显示产品的价格。在这个层次上,我不在乎
为什么?
正在展示。所以,这将取代
if ( UserInRole("Vendor") || UserInRole("Distributor") )
.
显然,我需要一些方法来根据上下文更改此设置。理想情况下,我想避免使用条件语句
如果(UserInRole(“供应商”)| | UserInRole(“分销商”))
因为条件列表可以快速增长。例如,假设我想向供应商显示价格,但前提是他们有VIP访问权限,并且已经使用了30天以上,并且以前购买过,并且。。
对于每个用户在运行时修改/堆叠设置,有什么最佳实践或建议吗?有没有人有经验实施“偏好”与大量的排列?