0

我有一个完全不使用接口的购物车应用程序。我正在尝试使用接口重新实现一些现有功能。我想构建一个购物车商品检索接口,以便我至少可以拥有该接口的标准实现和测试实现。

在现有的应用程序中,当前期望在调用中获取购物车项目的参数。参数是一个 ID 和一个布尔值,指示是否检索已删除的购物车项目。

现在在标准物品检索界面上添加这些参数是否有意义?如果我计划将来需要为购物车物品检索添加新方法或向现有物品检索功能添加新参数,有哪些潜在的陷阱和解决方法?

4

1 回答 1

1

潜在的陷阱和解决方法取决于您计划对应用程序执行的操作。如果您希望提取您的类型接口以解耦和提高可测试性,那么我认为没有问题 - 如果您在将来的某个时候需要扩展方法的签名,您只需重构签名并修改接口中的参数以及实现它的类型。如果您的接口需要更多方法,只需添加它们并在派生类型中实现它们。

在设计界面时,您应该考虑以下几点:

  • 将实现它的类型是否能够实现所有必需的功能
  • 某些第三方是否会使用该接口通过插件扩展您的应用程序 - 对接口进行更改将导致对上述各方进行重大更改

根据您的描述,我没有看到使用界面有任何问题。

希望这可以帮助您。

于 2021-03-02T16:15:38.280 回答