Design patterns 代码气味-仅1个混凝土类和接口
我有一个界面:Design patterns 代码气味-仅1个混凝土类和接口,design-patterns,interface,Design Patterns,Interface,我有一个界面: interface DataExtractor { public function extractData($dataSource); } 我最后只得到了一个具体的例子,这个例子是通用的,足以满足我所有的需要 因此,对于如何命名这个具体的类,我有一个问题,这让我想问,这是否是一种代码味道,我不应该在一开始就拥有这个接口 默认数据提取器 BaseDataExtractor 将接口更改为iDataExtractor,将具体类更改为DataExtractor 这些似乎都是错误
interface DataExtractor {
public function extractData($dataSource);
}
我最后只得到了一个具体的例子,这个例子是通用的,足以满足我所有的需要
因此,对于如何命名这个具体的类,我有一个问题,这让我想问,这是否是一种代码味道,我不应该在一开始就拥有这个接口
- 默认数据提取器
- BaseDataExtractor
- 将接口更改为iDataExtractor,将具体类更改为DataExtractor
这些似乎都是错误的我会选择第三个选项——删除接口。当您不需要间接寻址时,您将在所有类上放置接口;只是让人困惑。代码越少越好。当您需要抽象时,就应该添加接口。到时候,重构工具会使这项任务变得非常简单。我会选择第三种选择——删除接口。当您不需要间接寻址时,您将在所有类上放置接口;只是让人困惑。代码越少越好。当您需要抽象时,就应该添加接口。重构工具将使任务变得非常简单。除了有多个实现之外,还有其他好处-
除了有一个以上的实施之外的好处-
离开接口,它对于单元测试的模拟和依赖注入都很有用。通常情况下,编写抽象而不是具体的代码是很好的。因此,你会如何命名具体的类?我会称接口为IDataExtractor,因为这是接口的命名约定,并称为类DataExtractor。可能会重复下行表决,因为“这个问题没有显示任何研究成果。”谷歌搜索提供了许多关于接口的宗教辩论的例子,包括关于SO和的多个例子。离开接口,它对于单元测试的模拟目的以及依赖注入都很有用。通常情况下,编写抽象而不是具体的代码是很好的。因此,你会如何命名具体的类?我会称接口为IDataExtractor,因为这是接口的命名约定,并称为类DataExtractor。可能会重复下行表决,因为“这个问题没有显示任何研究成果。”谷歌搜索提供了许多关于界面的宗教辩论的例子,包括关于某某和某某的多个例子。