Соглашение об именах Java для добавления, только если не существует - PullRequest
3 голосов
/ 28 декабря 2011

У меня есть некоторые структуры данных, которые остаются неизменными, если вы пытаетесь добавить что-то, что уже существует в структуре данных. Решение может быть принято путем сравнения ключа или использования функции равенства. Только если экземпляр объекта является новым для структуры, он будет добавлен в структуру.

Мне было интересно, как вы называете такие методы? updateX(), addX(), putX() все вводят в заблуждение, но что-то вроде addIfXDoesntExist() ужасно.

Существует ли соглашение или квазистандарт или что-то, что звучит просто хорошо и кратко, но в то же время всеобъемлюще?

Ответы [ 2 ]

8 голосов
/ 28 декабря 2011

Для такой логики вы можете вернуть логическое значение, которое возвращает истину, если это было успешное добавление, или ложь, если она уже существовала. Это означает, что вы можете решить, будете ли вы заботиться о результате или нет, и выполнить другую дополнительную логику для операторов if и т. Д.

public boolean add(Object o){}

Они часто делают это в реализациях коллекций.

0 голосов
/ 28 декабря 2011

Хорошей идеей было бы создать метод boolean tryAdd(), который возвращает true, если элемент был добавлен, или false, если он уже был в структуре. Также это возможно без типа возврата. Вы можете просто создать и выбросить ElementAlreadyInStructure проверенное исключение и обработать его так, как вам хочется.

...