我只是在阅读敏感原理,模式和实践在C#由R.马丁和M.马丁,他们建议在他们的书,保持所有的接口在一个单独的项目,例如。 接口。组织接口
举个例子,如果我有一个桂项目,包含我所有的自定义GUI类,我将保持其接口在接口项目。具体来说,我有一个在桂 CustomButton类,我会保持在接口 ICustomButton接口。
的优点是,这需要一个ICustomButton任何类并不需要,但只对重量轻得多接口项目桂本身的参考。
此外,应在桂项目变更一类,从而导致它被重建,只有项目直接参照的CustomButton需要重新编译,而那些指ICustomButton可能会保持不变。
我理解的概念,但看问题:
可以说我有这个接口:
public interface ICustomButton
{
void Animate(AnimatorStrategy strategy);
}
正如你所看到的,它是指AnimatorStrategy,这是一个具体的类,因此将坐在不同的项目,让我们打电话动画。 现在界面工程需要参考动画。另一方面,如果动画使用在接口中定义的接口,则需要参考它。
循环依赖 - “我们来了”。
对于这个问题,我看到的唯一解决方案是,接口中定义的所有方法都接受本身为接口的输入。试图实现这一点,很可能会产生多米诺骨牌效应,并且很快需要一个接口来实现即使是最基本的类。
我不知道我是否愿意在开发中处理这种开销。
有什么建议吗?
这有什么关系? O_o – 2009-07-16 13:49:57
这是一个好主意,但看起来更像是对我的破解。接口在那里拼出契约。 T如何阐明期望的策略?如果我有可以注册,我不需要T. – 2009-07-16 14:39:48