我正在编写各种文档编辑器。该应用程序是用WPF编写的,需要能够在同一个进程中处理多个文档。每个文档都有自己的编辑器窗口,其中有自己的功能区(有点像Word所做的那样)。
我想在应用程序中使用DI模式,所以f.ex.一个“SaveManager”类可以注入它应该保存的文档。显然,容器在应用程序启动时无法创建整个对象图,因为用户可能会选择稍后打开或创建新文档。处理这种情况的“正常”方法是使用抽象工厂,但这意味着我需要为文档上运行的每个类都有一个工厂。我期待很多课程需要对文档的引用,我不想仅仅为了DI而跳过篮球。有没有办法让容器管理文件的生命周期,在适当的时间分发正确的文档实例。
最好的问候,
泰耶
答案 0 :(得分:0)
我建议你这样:
使用特定类的特定引用的接口,如:
void MyClass(IResource资源);
从其他类继承该资源,然后在具体类上使用泛型或类型转换来解决它
答案 1 :(得分:0)
我最终做的是为每个文档创建一个子容器。这样我将每个文档窗口的解析分离到它自己的容器。
/泰耶