我在我的代码中加入了这种模式来实例化业务对象:
// UI or Business level code
public class SomeClass
{
IOrderFactory orderFactory;
public SomeClass(IOrderFactory orderFactory)
{
this.orderFactory = orderFactory
}
public void SomeMethod()
{
var newOrder = orderFactory.CreateOrder();
// Do stuff with new object
}
}
// In an interfaces only project
public interface IOrderFactory
{
Order CreateOrder();
}
// In an implementation project (not seen by most other modules)
public class OrderFactory
{
public Order CreateOrder()
{
return new Order();
}
}
我们目前使用 Unity 来创建IOrderFactory
对象,但我想知道是否可以使用 Unity (IOC) 来生成Order
对象本身。
类似的东西unityContainer.Resolve<IOrder>()
,每次都制作一个新的吗?
那行得通吗?我们将统一用于我们的服务和功能(即 ViewModels、Helper)类。但我们从未使用它来创建业务对象(如 Customer 或 Order。)