【发布时间】:2014-10-29 15:34:18
【问题描述】:
我有一个 .net webform 'NewShift.ascx' 文件。它为您提供了一个界面来添加有关您将要工作(或刚刚工作)的新班次的信息。所以像你工作了多少小时,你的轮班经理等等。在我后面的代码中,我想将创建日期标签的文本更改为当前日期(DateTime.Now),当且仅当它在今天下午 5 点之前,否则把日期写在明天(原因我就不说了)。
此外,我可能希望根据用户以某种方式格式化日期(例如,如果他们根据保存在数据库中的设置与一种文化与另一种文化相关联,而不是他们正在浏览的当前国家/地区网站)。
您可能会争论,因为它的逻辑如此简单,我可以将其写在后面的代码中,但假设我有很多这些简单的小事情(更改值、格式化日期、基于逻辑显示值、等)。
我的理解是,如果我在后面的代码中完成所有这些,这将是智能 UI 反模式。 上面的逻辑应该在哪里?
我听说没有贫乏的领域模型,并确保我的实体可以提供回答特定领域问题 (?) 的功能。我还听说要尽可能多地利用服务层。
所以如果我必须执行以下操作:
- 根据 X 和 Y 将标签的文本更改为今天或明天
- 将两个值相加并根据用户偏好为该总和分配一个标签文本
- 根据星期几有条件地隐藏复选框
这样的逻辑应该在哪里?在 Shift 对象上?还是某种 _shiftService?
谢谢!
【问题讨论】:
标签: c# design-patterns architecture domain-driven-design