代码气味 - 只有1个具体的类和接口

时间:2015-12-13 14:16:04

标签: design-patterns interface

我有一个界面:

interface DataExtractor {
  public function extractData($dataSource);
}

我最终只有一个具体的例子,其通用性足以满足我所有的需求。

因此,我有一个关于如何命名具体类的问题,这导致我询问这是否是代码气味,我不应该首先拥有接口。

  • DefaultDataExtractor
  • BaseDataExtractor
  • 将接口更改为iDataExtractor,将具体类更改为DataExtractor

这些似乎都错了

2 个答案:

答案 0 :(得分:1)

除了具有多个实现之外的好处 -

  1. 测试 - 类可以密封公共方法,然后不能覆盖这些方法以支持正确的测试。
  2. 相同的类不同的接口 - 您的唯一一个实现可能需要从某个框架类继承,如果您的语言不允许多重继承,那么它就成了问题。
  3. 分发 - 单独发货界面和实施。如果你的实现永远不会在一个系统中使用,而是声明它的类,那么只执行减速是没用的。
  4. 内存消耗 - 某些运行时环境在减速时加载类对象。通过分离减速,接口将允许您推迟实现类的加载,直到实际使用。

答案 1 :(得分:0)

我会选择第三个选项 - 删除界面。当你不需要间接时,你会在你的所有课程上自己动手制作接口;它只是令人困惑。更少的代码是更好的代码。当你需要抽象时,那就是你应该添加界面的时候。当时机成熟时,重构工具将使这项任务变得非常简单。