Какова лучшая практика для использования, “добираются” в именах методов?

Проще говоря, JSF в этой части является просто генератором HTML, в котором он генерирует простой выбор / раскрытие HTML. По сути, ваш вопрос «Как изменить значок выбора HTML»

.

Посмотрите на следующие вопросы и ответы Stackoverflow Q / A для ответов

5
задан Vlad Gudim 11 November 2008 в 15:02
поделиться

8 ответов

Это сводится к семантике. Да, C# имеет "свойства", которые дают Вам получить/установить тупик 'метода'..., но функции (... "методы"...) в Платформе.NET, которые запускаются с, "Добираются", предполагается к подсказке разработчик в то, что некоторая операция происходит для единственной цели получить некоторые результаты.

Можно ли думать, что это нечетно, и скажите, "почему не только используют тип возврата для людей подсказки в?", и ответ прост. Думайте о следующих методах:

public Person CreatePerson(string firstName, string lastName) {...}

Только названием того метода, можно, вероятно, полагать, что будет действие базы данных, включенное, и затем недавно созданный "человек" будет возвращен.

но, что относительно этого:

public Person GetPerson(string firstName, string lastName) {...}

Только названием того метода, можно, вероятно, предположить, что делается 100%-е "Безопасное" извлечение человека от базы данных.

Вы никогда не называли бы "CreatePerson" многократно..., но необходимо чувствовать себя в безопасности назвать "GetPerson" все время. (это не должно влиять на 'состояние' приложения).

5
ответ дан 18 December 2019 в 08:32
поделиться

Лучшая практика в Java должна использовать получение и установить префиксы для свойств.

Платформы, библиотеки тегов, и т.д. будут искать методы с теми префиксами и использовать их в качестве свойств.

Так, если у Вас есть класс Java как это...

public class User{
    private String name;
    public String getName(){ return name;}
    public void setName(String name){ this.name = name; }
}

.. с тегами распорок (или любой другой ognl основывал библиотеку тегов) Вы получите доступ к свойству имени с user.name.

Платформа Spring также использует эту конвенцию в файлах настройки XML.

4
ответ дан 18 December 2019 в 08:32
поделиться

"получите" и "установите" пару префикса в Java, используется первоначально в качестве конвенции обозначить боб Java. Позже, это становится просто конвенцией инкапсуляции, так как Java, в отличие от C# не имеет надлежащих свойств.

4
ответ дан 18 December 2019 в 08:32
поделиться

Objective C 2.0 также свойства использования, с помощью того же точечного синтаксиса.

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

value = [obj attr];

[obj setAttr:value];

[obj getAttr:&value];

Таким образом, доберитесь, используется по-другому. Это не возвращает значение, но хранит результат в переданном в переменной.

Типичный метод считывания имеет то же имя как атрибут, метод set является атрибутом, снабженным префиксом набором (согласно конвенции Java). Эти конвенции используются KVO (Наблюдение Значения ключа) система, так должен придерживаться к.

0
ответ дан 18 December 2019 в 08:32
поделиться

Просто короткое приложение: Другая конвенция для методов считывания булевых полей, которые будут снабжены префиксом "," вместо, "добираются", например. bool isEnabled() { return enabled; }

0
ответ дан 18 December 2019 в 08:32
поделиться

Это зависит. Это часто - избыточная информация, даже на языках без свойств.

В C++, вместо getAttr ()/setAttr () пара, распространено обеспечить две перегрузки Attr () функция: освободите Attr (Foo f);//метод set Foo Attr ();//метод считывания

В Java это - обычная практика к префиксу, получают/устанавливают. Я должен буду сказать, что лучшая практика должна пойти с тем, что является стандартным на Вашем языке. В Java люди ожидают видеть, получают/устанавливают префиксы, так исключение их могло бы смутить людей, даже при том, что они не строго необходимы.

1
ответ дан 18 December 2019 в 08:32
поделиться

Java еще не поддерживает свойства. Методы считывания и методы set являются bodge для обхождения этого. Другие языки - включая C# - поддерживают свойства, и необходимо использовать их вместо этого. Это не просто вещь "лучшей практики" также: сериализация в C# будет полагаться на свойства, не методы считывания и методы set, таким образом, не использование свойств могло привести ко всем видам проблем в будущем, если необходимо сериализировать классы.

Преимущество для свойств состоит в том, что они делают код более читаемым. Что-то как

obj.setX(10);

в Java, становится

obj.X = 10;

Все же негласно, X метод, вместо того, чтобы быть переменной и так может выполнить грязный вход, проверяющий и т.д.

2
ответ дан 18 December 2019 в 08:32
поделиться

Это, конечно, раньше имело место, что API часто выставляли свойства только для чтения без get префикс: String.length() и даже более новое Buffer.capacity() быть разумными примерами.

Позитивный аспект этого - то, что существует меньше включенного пуха. Оборотная сторона - то, что что-либо, что пытается определить свойства автоматически на основе конвенций, не обнаружит их. Лично я склонен допускать ошибку на стороне включения префикса.

Конечно, в C# это главным образом не важно, поскольку существуют "реальные" свойства так или иначе :)

1
ответ дан 18 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: