使用后缀“ Template”作为模板方法模式的类名称是否是反模式?

问题描述

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

我的抽象类具有处理迭代和记录的基本方法

像这样:

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 一词是合理的。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...