【发布时间】:2016-10-03 12:35:43
【问题描述】:
我使用命令设计模式在我的简单应用程序中创建菜单。
interface ICommand
{
string Description { get; }
void Execute(Library books, List<Book> bookList);
bool ValueChecker(string checkValue);
}
我正在使用 ValueChecker 检查我的答案中的字段是否仅为 int 并且有些独特。 (我在 AddBookCommand 类中添加产品)。向接口添加更多方法(如bool IsUnique 或bool IsYearLessThanCurrent)会是一种不好的做法,还是我应该考虑其他方法在我的菜单中进行一些简单的错误处理?
【问题讨论】:
-
我认为你不应该在你的命令中加入太多的逻辑。命令应该是愚蠢的。相反,您应该创建处理您的命令的命令处理程序。其中一些可能是验证者。然后你建立一个处理程序链并将你的命令传递给链。如果它通过了验证器,那么您将继续执行。如果没有,你就做别的事情。
-
@JakubRusilko 你能告诉我一些这样的处理程序的简短样本吗?我是编码的新手。
-
很难为您提供一个适合您的特定情况的全面示例,@Easy。不过网上有很多关于命令等的文章,我可以推荐这个网站:sourcemaking.com/design_patterns。查看本页描述的命令模式和责任链模式。
标签: c# oop command-pattern