gpt4 book ai didi

c# - 单个 API 类加载其他类的设计模式

转载 作者:行者123 更新时间:2023-11-30 17:10:14 25 4
gpt4 key购买 nike

我正在使用提供 API 的第三方产品。此 API 的工作原理是创建基类的实现,然后在 app.config 中指示您要使用的实现。

问题是在这个第三方应用程序中可能有多个项目。我想做的是创建一个实现基类的包装类。这将查看参数,然后查找配置以确定将处理传递给哪个其他类,具体取决于正在使用的项目。这样我们就可以在不修改任何现有代码的情况下将 future 的项目添加到系统中。

public class MyImplementation : ThirdPartyBaseClass
{
public override OnLoad(ThirdPartyType data)
{
//do stuff
}

public override Process(ThirdPartyType data)
{
//do stuff
}
}

大约有 15 个方法可以被覆盖。基类方法似乎是空的,因为如果你不覆盖一个方法,什么也不会发生,所以我需要我的包装器能够处理我需要用于这个项目的类型可能没有实现部分或全部的情况方法。

有人知道适合这种情况的设计模式吗?

最佳答案

正如罗伯特在评论中所说,抽象工厂似乎适合这个。检查这个wiki link还有这个dofactory link有关这方面的更多信息。

对于更具体的回应,我有一些疑问。有一个从第三方 API 获取的基类对象。现在,当您说可以在此工具中拥有多个项目时,我的意思是您需要使用此基类来创建您定义的多个“项目”类吗?

然后,包装类可以具有接口(interface)IProject 的对象类型。这应该具有所有定义,例如 OnLoadProcess。每种类型的项目都会有一个具体的类,并根据项目类型最终实现。

希望这有助于给你一个方向!

关于c# - 单个 API 类加载其他类的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12291056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com