仅使用接口进行软件设计?

时间:2011-09-22 07:48:54

标签: c# software-design

在软件设计中,这种类型的交互是仅用接口描述的吗?如果是的话,我应该总是使用这种方法吗?

我必须设计应该具有高可测试性的类库(我使用C#)。

这个库有一个 facade 和一些在后台有不同交互的类。

在优化这个库以获得良好的可测试性的情况下,我用接口替换了大部分类。

当我这样做时,我在连接图(Visual Studio类图)中只看到了接口。

我的问题是否正常?还是应该有另一种方法?

P / S:也许它在软件设计中是众所周知的方式,但我在书中找不到一些确认。

3 个答案:

答案 0 :(得分:6)

是的,这是一种很好的做法。它允许您关注每个类的职责,而无需关注实现细节。它允许您查看方法调用堆栈,正如您所说,它提供了高级别的可测试性和可维护性。就我所见,你走在正确的轨道上:)。

答案 1 :(得分:2)

是的,这通常是一种很好的做法。

我建议你阅读一本好的设计模式书,例如this one

它是针对Java开发人员的,但我可以毫不费力地将所有示例理解为C#开发人员。

答案 2 :(得分:0)

通过使用接口,您可以将应用程序分解为子系统,以使其易于维护和扩展。一些用例可以是:

  • 应用程序可能需要通信多个Web服务端点,才能完成相同的功能,例如来自不同提供商的直接账单或付款接口

  • 数据访问层类,用于通过不同的驱动程序对不同的数据库执行SQL。

  • 使用相同队列中的相同线程池处理实现相同接口的不同对象