我在《通过C#进行自适应编程》一书中发现了“Stairway”模式的描述,但我并不真正理解这个模式应该如何实现:
我想到的唯一解决方案是有一个程序集,它位于这三个(、和)之上,并将注入。我是否漏掉了什么?
(来源)
我有一个客户端程序集:
using ServiceInterface;
namespace Client
{
class Program
{
static void Main(string[] args)
{
// Have to create service implementation somehow
// Where does ServiceFactory belong?
ServiceFactory serviceFactory = new ServiceFactory();
IService service = serviceFactory.CreateService();
service.Do();
}
}
}
服务接口组件:
namespace Service
{
public interface IService
{
void Do();
}
}
服务实现汇编:
using ServiceInterface;
namespace ServiceImplementation
{
public class PrintService : IService
{
public void Do()
{
Console.WriteLine("Some work done");
}
}
}
问题是:如何在命名空间中获取对象?在哪里放置实际的对象创建?这不能是的一部分,因为接口程序集不依赖于。但它也不能是或的一部分,因为只应该依赖于。我想到的唯一解决方案是有一个程序集,它位于这三个(、和)之上,并将注入。我是否漏掉了什么?