Геттеры и сеттеры на объекте имеют преимущество типа безопасности. Например, если вы попытаетесь написать код getContactN
, компилятор выдаст вам ошибку. Поэтому, хотя это может сделать ваш код длинным, методы получения и установки хороши.
Альтернативой может быть использование карты, например. Map<String,String>
для хранения значений. Это более общий подход - вы можете вставить любой ключ, который вам нравится, - и он меньше кода, однако он не дает вам преимущества статического анализа геттеров и сеттеров. Если вы что-то неправильно написали, вы обнаружите это только при выполнении этого фрагмента кода - и если он находится в if
, код может не всегда выполняться, и вы можете его пропустить.
Существуют также различия в производительности между использованием геттеров / сеттеров и карты, однако, я думаю, что в 99% приложений они не будут иметь значения, поэтому здесь не стоит указывать. Если этот код становится узким местом, вы можете указать время, чтобы увидеть, какой подход лучше - но делайте это только в том случае, если вы можете проверить, есть ли у вас проблемы с производительностью в этой области, в противном случае просто используйте тот метод, который более удобен в обслуживании и проще для вас.