3

我正在.NET 中的一个项目中工作,其中一部分需要与通过 RS232(com 端口)连接到计算机的设备进行通信。我从设备制造商那里收到了一个 API,它是用 C# 编写的。

我想用 c# 编写一个类库并将其用作此 API 的包装器,以便将所有调用集中在此处,并且只使用 API 主类的一个实例,因为它应该只在第一次调用中初始化。(我想我必须使用单例)

API 有内部类和枚举器,它的一些公共方法请求一个内部类作为参数。

我的疑问是:我应该请求我的包装器的用户将这些 API 内部类作为参数,还是在包装器之外公开 API 内部类不是一个好习惯?

此外,我怀疑编写该包装器是否是个好主意,因为 API 也是用 C# 编写的,也许我在浪费时间?

4

2 回答 2

3

很大程度上取决于您将在这个项目上投入多少时间/资源,或者您可以在这个项目上投入多少。

绝对好的选择是完全隐藏API包装类的消费者的内部实现。这样,如果您将获得一个新设备,或设备的新驱动程序(略有不同API),或与不同制造商完全不同的全新设备API,您将再次将其包装到您的类中,隐藏所有“低来自用户的“级别”实现细节,他很可能不在乎..

但这可能是很多工作,取决于API制造商的原件写得有多大或有多好。

希望这可以帮助。

于 2012-08-06T19:18:13.080 回答
1


使用包装器是一个好主意,你在正确的轨道上。包装将允许代码重用,并且正如您所提到的,您可以创建一个单例来管理对象的生命周期。

关于内部类:如果公开内部类,这似乎是一个非常糟糕的 API!这意味着你不能使用这些方法,因为你不能创建这些类的实例——你的包装器的消费者也不能。
所以,如果这确实是这个 API 的情况,你绝对应该隐藏这个事故而不是暴露它。

祝你好运!

于 2012-08-06T19:26:37.790 回答