我的方案如下:
我有一个界面IVendor
。我有三个不同的类来实现这一点,我们称之为Vendor1
,Vendor2
,Vendor3
。
我有一个web api电话,它将为我提供供应商的产品。当然,每个供应商都有自己的检查可用性过程,因此接口公开了CheckAvailability
方法。
所以在我的电话中我有类似的东西:
public bool Get(int productId)
{
var product = GetProductByID(productId);
switch(product.VendorId)
{
case 1:
return Vendor1(CheckAvailability(product.VendorProductCode));
break;
case 2:
return Vendor2(CheckAvailability(product.VendorProductCode));
break;
case 3:
return Vendor3(CheckAvailability(product.VendorProductCode));
break;
default:
return false;
break;
}
}
这非常简单,当然我不喜欢它。我想能够打电话给
public bool Get(int productId)
{
var product = GetProductByID(productId);
return IVendor.CheckAvailability(product.VendorProductCode)
}
和IVendor通过Ninject注入任何需要的东西。我在问一些疯狂的事吗?这甚至可能吗?