我正在努力为正在制作的网络库提出正确的设计。该库是作为.NET标准项目编写的,它需要通过IOptions
进行配置(期望有一些可执行文件来提供这些依赖项)
我正在阅读this answer,这是我一直遵循的指南。但是,我的困惑是某些应用程序应如何使用该库。
例如,我有一个名为Packet.cs
的类,需要进行一些配置。
public class Packet {
public Packet(int maxSize) {
...
}
}
让我们假设maxSize
是可以通过appsettings.js
配置的。我写了另一个名为NetworkService.cs
的类,它像这样IOptions
:
public class NetworkService {
public NetworkService(IOptions<Settings> settings) {
// save the settings
}
public Packet NewPacket() {
return new Packet(settings.maxSize);
}
}
现在,我现在是否要假设任何要使用我的库的内容都必须经过NetworkService
,因为它是唯一具有设置的类?这是推荐的设计,因为我只有一个到整个库的接口,并且所有调用都必须经过它?
答案 0 :(得分:0)
如果您要询问是否必须使用NetworkService
创建Packet
对象,那么答案是肯定的,它实际上是Factory模式的实现。