1
내 시나리오는 다음과 같다 특정 값에 따라 런타임에 바인딩. 나는 이것을 구현하는 세 가지 클래스를 가지고 있는데, Vendor1
, Vendor2
, Vendor3
이라고 부를 수 있습니다.는 Ninject에 문맥
나는 공급 업체의 제품을 사용할 수있게 해주는 웹 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를 통해 필요한 모든 것으로 호출 될 수 있기를 바랍니다. 내가 뭔가 미친 게 묻는거야? 그게 가능한가?
이 논리를 구현할 팩토리를 사용해야합니다. 불행히도 우리는 아직 개념적으로 할 수있는 수준이 아닙니다. 그러나 공장 옵션은 낮은 수준에서 실행되어 올바른 구현을 제공합니다. – Chris
예를들 수 있습니까? –
나는 오늘 밤에 나중에 할 수 있었다.. 현재 직장에서 – Chris