#design-patterns #naming-conventions #anti-patterns
#шаблоны проектирования #соглашения об именовании #антишаблоны
Вопрос:
Я использую шаблон метода шаблона.
В моем абстрактном классе есть метод скелета, обрабатывающий итерации и ведение журнала.
вот так:
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» в суффиксе.
Является ли антишаблоном использование суффикса «Template» для имени класса «шаблона метода шаблона»?
Лучше ли использовать «ImportingContext»
Ответ №1:
Одним из разумных соглашений является использование имени агента для интерфейсов (и типов функций). В вашем случае имя интерфейса будет Importer . Однако вы не сможете изменить имя интерфейса.
Если подкласс вашего абстрактного класса не должен иметь состояние (переменные экземпляра) Я бы использовал массовое существительное, например, ArticleImport. В конце концов, класс обрабатывает статьи, поэтому имеет смысл использовать слово Article в имени.
Комментарии:
1. Если я использую
Importer
в качестве имени интерфейса (имеет значение: public void importArticles(List<Long> articleIds) ) и используюTwitterImport
иFacebookImport
в качестве имени подкласса, какое хорошее имя для абстрактного скелетного класса? Я хочу инкапсулировать цикл и ведение журнала с помощью шаблона Template-Method-Pattern. Было бы лучше назвать егоArticleImportTemplate
, чтобы указать, что я использовал шаблон Template-Method-Pattern? илиMediaImport
лучше?2. @kang MediaImport кажется хорошим именем, если это любой вид мультимедиа, который можно импортировать (текст, изображения и т. Д.). Я бы не стал использовать Template в имени, потому что эта информация уже может быть извлечена из ключевого слова abstract (любой абстрактный класс является своего рода шаблоном).