我们正在重新设计一些遗留软件,以便更能测试,我们已决定采用依赖注射和城堡。
First, our goal: * A number of decorators that all work on a data stream. * Multiple combinations of the decorators are possible and the root nodes in each case can be required to get data from different places.
从技术上讲,我们的设计如下:
interface IUpdateableValue<T>
{
T Get();
};
例如,我们有三套数据需要检索,其中包括若干组成部分,所有执行的InatedableValue ()(Pseudo-code):
JsonParser(
Decompressor(
Decrypter(decryptionKey
FileCache(filename,
HttpWebDownloader(url))))
XmlParser(
Decompressor(
Decrypter(decryptionKey2
FileCache(filename2,
HttpWebDownloader(url2))))
我很难把设计设计出适合像城堡风景那样的DI框架。我怀疑有些设计可以由有名的例子来处理,但这种用法似乎有味道。
例如JsonParser和XmlParser案例的“用户”不知道(或关心)数据来自Httpurl、文件还是神奇地摘出帽子。
我想我们的设计有问题 但不确定怎么解决
有关于如何进步的想法吗?