我的基础结构项目中有一个WriterService
:
public class WriterService()
{
private DbWriter _dbWriter;
private IFileWriter _fileWriter;
public WriterService(DbWriter dbWriter, IFileWriter fileWriter)
{
_dbWriter = dbWriter;
_fileWriter = fileWriter;
}
public WriterSomething(string text, Stream image)
{
_dbWriter.Write(text);
_fileWriter.Write(image)
}
}
如您所见,WriterService
必须将一些文本写入DB,将某些图像写入文件系统。
public interface IFileWriter
{
public void Write(string text)
{
}
}
现在我对文件系统编写器有不同的实现,可以将其写入本地磁盘驱动器或AWS云:
public DiskDriveWriter : IFileWriter
{
public void Write(string text) {/* write something to Disk */}
}
public AWSCloudWriter : IFileWriter
{
public void Write(string text) {/* write something to AWS */}
}
我想强制外界使用WriterService
,我不希望他们能够直接使用AWSCloudWriter
或DiskDriveWriter
...这可能吗?
[如果您将IFileWriter
internal
和将要使用您的接口的WriterService
的构造函数也应该设为internal
,则将起作用。
internal interface IFileWriter
internal WriterService(IFileWriter fileWriter)