具体 类 位于单独的 DLL 上的工厂模式
Factory pattern where concrete classes are on separate DLLs
我写了一个连接到某个第三方的 dll API,每个 DLL 都有方法:SignIn
、Upload
、Download
、SignOut
.
我的经理要求我实施工厂模式,因为将来我会为其他具有相同方法签名的 API 编写更多 dll。
现在我有:
DLL 1: OneDrive
它有一个 class 方法:SignIn
,Upload
,Download
,SignOut
.
因此,如果我想使用它,我会添加对此 DLL 的引用,然后任何应用程序都可以使用此 DLL。
DLL 2:DropBox
它还有 class 方法:SignIn
,Upload
,Download
,SignOut
.
My question: How do I implement the factory method design pattern in this secnario?
我做了什么:我创建了另一个 DLL("The new DLL") 这个 DLL 将包含 "FactoryClass",问题是这个 dll 中的创建者应该 return 一种 "OneDrive" 或 "DropBox" 这意味着我应该添加对前两个 dll 的引用("OneDrive" 和 "DropBox")。
但是,classes "OneDrive" 和 "DropBox" 应该在新的 dll 中实现一些抽象 class,这意味着我应该添加对新 dll 的引用。
但这是不可能的,因为它是循环依赖(Visual studio错误)
为了消除循环依赖,必须保持主程序集方向的依赖。
这部分通过在此中央程序集中声明的接口(或抽象 class)解决,但还有一个额外的问题,即在不直接引用依赖项的情况下实例化具体实现。
这可以通过允许您的工厂保留可用实现的注册表来解决。您可以找到 a simple factory with registration in this other stack overflow question
的示例
我写了一个连接到某个第三方的 dll API,每个 DLL 都有方法:SignIn
、Upload
、Download
、SignOut
.
我的经理要求我实施工厂模式,因为将来我会为其他具有相同方法签名的 API 编写更多 dll。
现在我有:
DLL 1: OneDrive
它有一个 class 方法:SignIn
,Upload
,Download
,SignOut
.
因此,如果我想使用它,我会添加对此 DLL 的引用,然后任何应用程序都可以使用此 DLL。
DLL 2:DropBox
它还有 class 方法:SignIn
,Upload
,Download
,SignOut
.
My question: How do I implement the factory method design pattern in this secnario?
我做了什么:我创建了另一个 DLL("The new DLL") 这个 DLL 将包含 "FactoryClass",问题是这个 dll 中的创建者应该 return 一种 "OneDrive" 或 "DropBox" 这意味着我应该添加对前两个 dll 的引用("OneDrive" 和 "DropBox")。
但是,classes "OneDrive" 和 "DropBox" 应该在新的 dll 中实现一些抽象 class,这意味着我应该添加对新 dll 的引用。
但这是不可能的,因为它是循环依赖(Visual studio错误)
为了消除循环依赖,必须保持主程序集方向的依赖。
这部分通过在此中央程序集中声明的接口(或抽象 class)解决,但还有一个额外的问题,即在不直接引用依赖项的情况下实例化具体实现。
这可以通过允许您的工厂保留可用实现的注册表来解决。您可以找到 a simple factory with registration in this other stack overflow question
的示例