假设我想构建一个字符串列表(这不是真实的场景案例,但听起来更容易解释)。
我的字符串工厂列表有一个界面,看起来像这样
public interface IStringsListFactory{
List<string> Create();
}
但是可以说我的一个具体工厂需要从文件/数据库等中获取这个字符串列表。
public class StringsListFromFile : IStringsListFactory{
private StreamReader _streamReader;
public StringsListFromFile(StreamReader sr) //StreamReader is just an example.
{
_streamReader = sr;
}
public List<string> Create(){
///recover the strings using my stream reader...
}
}
我知道这种方法会起作用,但我想知道它是否会破坏工厂模式以将参数传递给工厂的构造函数,这样我就不会破坏我的界面。有没有这样做的同行?还有其他我没有想到的解决方案吗?我是不是问太多问题了!?!(是的,我知道这个问题的答案!)