在SOLID编程中放置抽象的位置?

时间:2013-07-21 02:10:17

标签: design-patterns interface dependency-injection abstraction solid-principles

我在XNA中开发了一个游戏引擎。该引擎有一些模块(子项目),如Renderer,StateManagement等。

参考依赖性倒置原则:“高级模块不应该依赖于低级模块。两者都应该依赖于抽象。”我的问题是:我应该在实践中把这些抽象放在哪里?我应该创建一些具有相应抽象组的项目,还是创建一个包含引擎所有抽象的项目?第一个解决方案将搞乱我的项目结构,第二个解决方案将要求创建具有大量抽象类的项目,所有其他项目都依赖于它。也许有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

虽然有时人们会将他们的接口放在单独的项目中,但通常只是将接口并排放置在他们的实现中。有人可能会争辩说,使用单独的项目可以确保一个代码对这些接口进行编码,但我发现最好依靠规则和依赖项发现工具来确保您对接口进行编码。