Используйте GetTers, если у вас их!
Может быть, однажды вы меняете код, так что Getter не только вернет значение поля, но делает что-то большее или создать результат по-другому. Тогда вы будете более рады, что вы последовательно использовали Getter.
Но как обычно, от моего совета есть извлечения - что вы ожидаете от метода TOSTRING (), если вы разрешите переопределить методы Getter, вы хотите, чтобы он использовал поля классов или результат - возможно, переопределения - метод getter.
Итак, как обычно, это зависит, но я бы использовал GetTers, если у меня не будет веской причины получить доступ к полям напрямую.
Для многоязычия Epson TM-T88IV требуется преобразовать последовательность в CodePage 936, а затем представить ее в ISO-8859-1.
Смотрите этот другой вопрос для получения подробной информации об алгоритме:
Можем ли мы упростить этот код кодирования последовательности
сделать это перед отправкой на принтер. str = Encoding.GetEncoding («ISO-8859-1») .GetString (Encoding.GetEncoding (_ReceiptPrinter.CharacterSet).GetBytes (str));
-121--4055935-Использование getters в toString является переполнением. Кроме того, не следует использовать toString в целях, не связанных с отладкой.
-121--4167148-Использование методов доступа может быть предпочтительным, если они обеспечивают какую-либо дополнительную логику поверх только что возвращенного значения поля (например, увеличение последовательности или что-то подобное). Если ваш класс предназначен для расширения, я бы склонен к доступу, потому что они могут быть переопределены.
Если ваш класс имеет Getter и Getters для полей, Вы должны быть последовательными на протяжении всей реализации этого класса в том, используете ли вы GetTers и Getters или получить доступ к полям напрямую. Обычно не имеет смысла смешивать уровни абстракции. В противном случае, как вы можете рационализировать их в некоторых местах, но не в других? Кроме того, если когда-либо есть изменение того, как будут реализованы Getters, вы можете в конечном итоге с тонкими мешками. TOSTRING () является частью реализации, поэтому он также должен быть последовательным.
С точки зрения производительности, это не должно иметь значения - ваши тривиальные и устойчивые к сетрям должны быть окончательными методами, поэтому они должны быть включены в любом случае. Если они не окончательны, вы должны спросить себя, почему и, вероятно, избегайте доступа к полям непосредственно, если это действительно то, что вы хотите сделать.
Я бы предпочел подход к непосредственному доступу на частные переменные напрямую. ИМХО методы GetTter увеличивают беспорядок.
Использование getters в toString является переполнением. Кроме того, не следует использовать toString в целях, не связанных с отладкой.
-121--4167148- Я придумал быстрый пример, который работает. Вы попытались изменить z-индекс на ui-datepicker
, но после просмотра визуализированного кода в Firebug он выглядит так, как будто вам нужен идентификатор ui-datepicker-div
. Установите z-индекс на 9999 и он появится в верхней части модального диалогового окна.
<script type='text/javascript'>
$(function() {
$("#datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});
function openmodal() {
var $dialogContent = $("#event_edit_container");
$dialogContent.dialog({
modal: true,
title: "Test",
close: function() {},
buttons: {
save : function() {},
cancel : function() {}
}
}).show();
$("#ui-datepicker-div").css("z-index", "9999");
}
</script>
<div ><a href="javascript:openmodal();">Open modal</a></div>
<div id="event_edit_container" >
<form>
Date: <input type="text" id="datepicker" name="datepicker">
</form>
</div>
-121--2669380- Есть ли у вас причина использовать методы получения? Они делают что-нибудь интересное?
... Или вы просто используете их для разоблачения внутренних данных, фактически не предавая гласности сами поля (инкапсуляция бедняков)?
Если первые, то да всеми средствами использовать их и здесь! Если последнее, то это не имеет значения - вы, возможно, хотите использовать их в любом случае, на всякий случай вы когда-либо даете им реальную цель, но это не будет иметь никакого значения в противном случае.
Использование получений в TOSTRING - это сверху. И вы не должны использовать ToString для не отладки.
используя String.format("%s %s", this.getField1(), this.getField2());
было бы лучше всего это сделать, поскольку методы .getXXX()
могли бы иметь в них логику, подобную преобразованию NULL ссылок в пустые строки или какое-нибудь значение по умолчанию, которое вы не получили бы просто слепого доступа к приватным экземплярам. Это самый безопасный способ сделать это, просто на случай, если кто-то придет и добавит логику в метод .getXXX()
и не подумает обновлять реализацию .toString()
.