我正在写一个购物车模拟应用程序
这是我的情况,我想强制一个类型执行它为自己定义的方法......
基本上我有一个界面
interface IGroceryCart
{
// Other methods snipped for clarity
void Checkout(IEnumerable<IGroceryItem> itemsToBuy);
}
现在 IGroceryItem 界面看起来像这样
interface IGroceryItem
{
// Other methods snipped for clarity
CheckoutIssues EnsureFreshness();
}
IgroceryCart 和 IgroceryItem 显然有具体的实现,但我想要做的是:
当我在购物车上调用 Checkout 时,我希望所有被检出的物品都在内部调用它们的 EnsureFreshness() 方法,然后在一个或多个物品有 CheckoutIssues 时做出相应的反应
CheckoutIssues 就像
class CheckoutIssues
{
string Description {get;set;}
//etc
}
实现在每个杂货项目上调用 EnsureFreshness 的方式的最佳方法是什么?还是更好地解决此类错误的替代方法?我应该走自定义验证器路线吗?每个杂货项目可能有自己的检查新鲜度的方式,例如牛奶与鸡蛋不同,所以我必须依赖每个单独的实现,但我想强制在结账时调用,希望这是有道理的。