gpt4 book ai didi

c# - 如何以可靠的方式管理外部资源?

转载 作者:行者123 更新时间:2023-11-28 20:39:21 26 4
gpt4 key购买 nike

我目前正在做一个项目,我正在将外部文件解析为抽象对象,如下所示:

public interface IMapConverter
{
IMap Convert(IMapFile file);
}

public interface IMapFile
{
void Load(string filePath);
string Json { get; }
}

我的计划是通过使用 IMapFile 实现并在该实现中创建 StreamReader 来抽象文件的加载。然后我会将其传递给 IMapConverter.Convert 方法。那会是一种正确的方法并保持可测试性吗?例如,将字符串直接传递给 IMapConverter 并在那里进行处理是否是错误的?

最佳答案

我看不出按照你的建议做有什么问题,即让具体的 IMapConverter 创建你的具体 IMapFile 的实例,因为它们都在应用程序的同一层。

规则,据我所知,一个实现依赖接口(interface)的类可以“知道”另一个接口(interface)的实现,只要它们在应用程序的同一层上;一旦你在层之间工作,你想要将你的依赖项(即你的具体实现)注入(inject)到它下面的层中。

我一直在学习the onion architecture我强烈推荐给任何想要创建松散耦合、高度可测试的应用程序的人。在该站点上讨论了这种依赖关系的概念,只要它们在同一层上就相互了解。

关于c# - 如何以可靠的方式管理外部资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40161028/

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