仅使用接口进行软件设计

本文关键字:软件 接口 | 更新日期: 2023-09-27 18:09:13

在软件设计中,类交互仅用接口来描述,这是一种好方法吗?如果是,我应该一直使用这种方法吗?

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

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

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

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

我的问题是正常的决定吗?还是应该有别的办法?

p/S:也许这是软件设计中众所周知的方法,但我在我所拥有的书中找不到一些证实。

仅使用接口进行软件设计

是的,这是很好的做法。它允许您关注每个类的职责,而不必关注实现细节。它允许您查看方法调用堆栈,并且如您所说,提供了高水平的可测试性和可维护性。在我看来,你的思路是对的。

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

我建议你读一本好的设计模式书,比如这本。

是针对Java开发人员的,但作为c#开发人员,我理解所有示例没有任何困难。

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

  • 应用程序可能需要与多个web服务端点通信以完成相同的功能,例如来自不同提供商的直接计费或支付接口

  • 数据访问层类,对不同驱动程序的不同数据库执行sql。

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