【发布时间】:2014-10-14 07:13:36
【问题描述】:
在工作中,我们正在使用我在 GoF 书中没有真正找到的“模式”(但这可能是由于缺乏这方面的能力,我只是略读了模式)而且我仍然怀疑有点。
假设我们有一个多项目解决方案,其中包含一个项目DataAccess,该项目管理数据访问。然后通常我会看到它具有这样的结构:
Providers (Folder)
- DataAccessProvider.cs
Interfaces (Folder)
- IFileLoader.cs
Implementors (Folder)
- FileLoader.cs
这里,FileLoader 将是接口IFileLoader 的internal 实现,提供程序如下所示:
public static class DataAccessProvider
{
public static IFileLoader FileLoader
{
get { return new FileLoader(); }
}
}
这是一种什么样的设计模式(如果有的话),除了掩盖IFileLoader接口的具体实现之外,它的真正用途是什么?
其次,这真的是“好风格”吗?例如,我想知道如果有很多这样的调用会发生什么
string content = DataAccessProvider.FileLoader.LoadContentFromFile("abc.txt");
无论何时使用它都会调用new FileLoader()。难道没有更优雅的方式来做类似的方法吗?
【问题讨论】:
-
对我来说很像一个专门的服务定位器。 ServiceLocator 是一种反模式。
标签: c# design-patterns