Является ли анти-шаблоном использование суффикса 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);

}


Я не могу использовать Importing, потому что это имя интерфейса.

Я не могу придумать лучшего имени, чем использовать Template для суффикса.

Является ли анти-шаблоном использование суффикса Template для имени класса шаблона метода шаблона?

Лучше использовать ImportingContext


person chytonpide    schedule 27.10.2020    source источник


Ответы (1)


Одним из разумных соглашений является использование существительного агента для интерфейсов (и типов функций). В вашем случае имя интерфейса будет Importer. Однако вы, возможно, не сможете изменить имя интерфейса.

Если подкласс вашего абстрактного класса не должен иметь состояние (переменные экземпляра), я бы использовал массовое существительное, например, ArticleImport. В конце концов, класс обрабатывает статьи, поэтому имеет смысл использовать в имени слово Article.

person August Karlstrom    schedule 03.11.2020
comment
Если я использую Importer в качестве имени интерфейса (имеет подпись: public void importArticles(List‹Long› articleIds)) и использую TwitterImport и FacebookImport в качестве имени подкласса, какое хорошее имя для абстрактного скелетного класса? Я хочу инкапсулировать цикл и ведение журнала с помощью Template-Method-Pattern. Было бы лучше назвать его ArticleImportTemplate, чтобы указать, что я использовал Шаблон-Метод-Шаблон? или MediaImport лучше? - person chytonpide; 05.11.2020
comment
@kang MediaImport кажется хорошим именем, если это любой вид мультимедиа, который можно импортировать (текст, изображения и т. д.). Я бы не стал использовать Template в названии, потому что эта информация уже может быть извлечена из ключевого слова abstract (любой абстрактный класс является своего рода шаблоном). - person August Karlstrom; 05.11.2020