|
|
1
2
我假设是您的模型层知道用户的时区,所以由模型层来转换时间属性。否则,您必须让表示层知道时区,并在那里转换每个时间值。 转换模型层中的时间值将允许在表示层中使用它们,而不进行任何转换,所以我认为这是干净的。例如,可以在开始时用转换时间初始化对象(POCO)。但是要注意在模型中重新转换它们,忘记它们已经初始化为本地时间。此外,如果用户可以编辑时间值,则在保存之前需要将其转换回UTC时间。
更新:
经过进一步思考,我认为UTC时间是模型的一部分,而本地时间是该模型的一个视图,因此转换职责更多地属于表示层(以牺牲与我自己的分歧为代价)。使用相同的思想过程,本地时间属性与UTC时间在本质上是重复的,转换仍然在模型层中。为了克服这一点,您可能有一个只读的
我不知道这种方法是否适用于您,但它受到您的策略的启发,我认为设计的其他部分以这种方式运行更平稳。此外,到当地时间的转换仍由客户自行决定。缺点是必须转换客户机中的所有时间值,但在我看来,这是消除重复数据和静态方法的必要条件。 |