【发布时间】:2012-07-20 17:29:35
【问题描述】:
我正在查看 Project Silk 项目的源代码,并且有一个我以前从未见过的“处理程序”模式。首先 - 这个 2009 年的 link 暗示了它,但让我挂了
示例显示的是一个方法类,其中每个类代表相关存储库类中每个方法的一个方法。这些类被命名为方法名称。
public class GetFillupsForVehicle
{
private readonly IFillupRepository _fillupRepository;
public GetFillupsForVehicle(IFillupRepository fillupRepository)
{
_fillupRepository = fillupRepository;
}
public virtual IEnumerable<FillupEntry> Execute(int vehicleId)
{
try
{
var fillups = _fillupRepository
.GetFillups(vehicleId)
.OrderBy(f => f.Date)
.ToList();
return new ReadOnlyCollection<FillupEntry>(fillups);
}
catch (InvalidOperationException ex)
{
throw new BusinessServicesException(Resources.UnableToRetireveFillupsExceptionMessage, ex);
}
}
}
有人可以解释一下这种模式或指出一些我可以阅读以了解更多信息的内容吗?
谢谢, 保罗
【问题讨论】:
-
那这个类不应该叫GetFillupsForVehicleCommand吗?我需要深入研究它是如何被调用的,现在也许它会更有意义。谢谢。
-
没有说类必须以“Command”结尾
-
但是类名不应该是名词吗?无论如何,我正在查看这个示例应用程序,并且 - 从控制器 - 有时他们调用服务(调用存储库),有时他们调用这些“命令”(调用存储库)。我正试图围绕整个模式展开思考,但我不确定他们如何决定使用哪种模式。感谢您的意见。
-
你确定他们确定他们为什么混合吗? ;)
-
这是来自 Microsoft Patterns & Practices 的新 Project Silk 参考应用程序。目前我还不确定。
标签: design-patterns repository handler