问题描述
我正在使用模板方法模式。
我的抽象类具有处理迭代和记录的基本方法。
像这样:
abstract public class ImportingTemplate implements Importing{
public void importArticles(List<Long> articleIds)
{
for(long articleId : articleIds)
{
Log log = importArticle(articleId);
logService.save(log);
}
}
protected abstract Log importArticle(long articleId);
}
我不能使用“导入”,因为它是界面的名称。
我想不出比在后缀上使用“模板”更好的名称。
使用后缀“ Template”作为“模板方法模式”的类名是否是反模式?
使用“ ImportingContext”是否更好
解决方法
一个明智的约定是对接口(和函数类型)使用 agent名词。在您的情况下,接口名称将为 Importer 。但是,您可能无法更改接口的名称。
如果抽象类的子类不打算具有状态(实例变量),则可以使用质量名词,例如 ArticleImport 。毕竟,该类处理文章,因此在名称中使用 Article 一词是合理的。