模板方法模式的class名称使用后缀"Template"是反模式吗?

Is it an anti-pattern to use the suffix "Template" for the class name of the template method pattern?

我正在使用模板方法模式。

我的摘要 class 有一个框架方法处理迭代和日志记录。

像这样:

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);

}


我不能使用“导入”,因为它是接口的名称。

我想不出比在后缀上使用“模板”更好的名字了。

“模板方法模式”的class名称使用后缀“Template”是反模式吗?

使用“ImportingContext”更好吗

一个明智的约定是对接口(和函数类型)使用代理名词。在您的情况下,接口的名称将是 Importer。但是,您可能无法更改接口的名称。

如果你的摘要 class 的子class 不意味着有一个状态(实例变量)我会使用一个 质量名词 比如实例 ArticleImport。毕竟,class 处理文章,因此在名称中使用单词 Article 是有意义的。