Наименование метода, который создает список с новыми экземплярами
Есть метод, который создает список новых экземпляров из некоторых параметров. Я бы назвал это так:
List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);
Но я также часто видел, как он назывался таким образом:
List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);
Мой вопрос сейчас: должен ли каждый метод, который создает (или, в более общем случае: возвращает) что-либо, иметь имя с префиксом get?
3 ответа
Это плохой стиль и вводит в заблуждение, чтобы добытчики, которые:
- на самом деле не являются "получателями" (т.е. не возвращают поле экземпляра)
- иметь побочные эффекты (вносить какие-либо изменения, что угодно)
Ваш метод не работает в обеих точках.
Называя это create...
это лучший выбор, и префикс часто используется для заводских методов, с которыми ваш метод тесно связан.
Нет. Вы должны выбрать имя, которое лучше всего описывает, что делает метод. Использование префиксов get/set является общепринятым соглашением для доступа к свойствам объекта, но этот метод не является геттером.
Я лично использовал бы создание, так как метод создает вещи, а не просто получает их. Но я бы опустил суффикс "Экземпляры", который добавляет ненужные шумы. Каждый объект является экземпляром класса. Учитывая то, что я знаю, я бы, вероятно, назвал метод createNewTypes()
,
Тем не менее, и ничего не зная о вашем программном обеспечении, OldType
а также NewType
на самом деле не описательные имена.
Я думаю, что этот метод должен быть назван createNewTypeInstances
потому что это создает что-то. Метод с get
по соглашению - методы получения (методы доступа) и является задачей возврата существующего значения, а не создания нового.