Наименование метода, который создает список с новыми экземплярами

Есть метод, который создает список новых экземпляров из некоторых параметров. Я бы назвал это так:

List<NewType> createNewTypeInstances(OldType1 value1, OldType2 value2);

Но я также часто видел, как он назывался таким образом:

List<NewType> getNewTypeInstances(OldType1 value1, OldType2 value2);

Мой вопрос сейчас: должен ли каждый метод, который создает (или, в более общем случае: возвращает) что-либо, иметь имя с префиксом get?

3 ответа

Решение

Это плохой стиль и вводит в заблуждение, чтобы добытчики, которые:

  • на самом деле не являются "получателями" (т.е. не возвращают поле экземпляра)
  • иметь побочные эффекты (вносить какие-либо изменения, что угодно)

Ваш метод не работает в обеих точках.

Называя это create... это лучший выбор, и префикс часто используется для заводских методов, с которыми ваш метод тесно связан.

Нет. Вы должны выбрать имя, которое лучше всего описывает, что делает метод. Использование префиксов get/set является общепринятым соглашением для доступа к свойствам объекта, но этот метод не является геттером.

Я лично использовал бы создание, так как метод создает вещи, а не просто получает их. Но я бы опустил суффикс "Экземпляры", который добавляет ненужные шумы. Каждый объект является экземпляром класса. Учитывая то, что я знаю, я бы, вероятно, назвал метод createNewTypes(),

Тем не менее, и ничего не зная о вашем программном обеспечении, OldType а также NewType на самом деле не описательные имена.

Я думаю, что этот метод должен быть назван createNewTypeInstancesпотому что это создает что-то. Метод с get по соглашению - методы получения (методы доступа) и является задачей возврата существующего значения, а не создания нового.

Другие вопросы по тегам