Соглашение об именах методов (большинство языков) - PullRequest
5 голосов
/ 09 сентября 2010

Если у меня есть метод, который скрывает кнопку, я, вероятно, назвал бы его HideButton
Если у меня есть метод, который показывает кнопку, я бы, вероятно, назвал бы его ShowButton

Но что вы, ребята, называете ShowIfThisHideIfThat метод стиля?

Возможные варианты:
TestForButtonVisibility (это звучит так, как есливерните true / false, но на самом деле не выполняете работу)
TestButton
ShowHideButton (стиль, который я сейчас использую)

Был на этом числолет и до сих пор нет стиля, который мне нравится для этих типов методов.Я работаю в основном на C # и немного Java, Ruby и F #.Что вы используете для имен методов в этом отношении?

// example of the style of method
public void ShouldIShowOrHideButton()
{
  Button.Visible = ((chkSomeSetting.Checked) && (DateTime.Now.Day < 8));
}

Ответы [ 6 ]

6 голосов
/ 09 сентября 2010

Как насчет updateButtonVisibilty()?

4 голосов
/ 09 сентября 2010

Возможно, это слишком трудоемкая работа, но причина, по которой у вас могут быть проблемы, потому что она делает две вещи.Таким образом, убедившись, что у вас есть только функция, выполняющая одну вещь, как метод определения, должна ли кнопка отображаться или нет (принимает параметры, возвращает bool), затем установите значение кнопки напрямую.

  Button.Visibilty = DetermineIfButtonShouldBeShow(...);
4 голосов
/ 09 сентября 2010

Я предпочел бы сохранить методы переключения, а не отдельные методы для скрытия / показа.

ToggleButtonVisibility()

Это позволяет вам поместить туда свой код тестирования, и ожидаемый результат / вывод будет правильно виден/ невидимая кнопка.

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

2 голосов
/ 09 сентября 2010

Редактировать : Теперь ваш вопрос отредактирован для включения примера

// example of the style of method
public void ShouldIShowOrHideButton()
{
  Button.Visible = ((chkSomeSetting.Checked) && (DateTime.Now.Day < 8));
}

Мой ответ ни .Я бы сделал две вещи:

  1. Переместите часть Button.Visible за пределы функции, чтобы функция просто вычисляла логику и вернула bool.
  2. Назовите функцию в соответствии с ее внутренняя логика не в зависимости от того, для кнопки это или нет.Поэтому, если ваша функция проверяет день свадьбы, она будет называться IsWeddingDay, если она проверяет ежемесячную встречу, то будет IsMonthlyMeeting.

Код будет

Button.Visible = IsMonthlyMeeting()

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

Старый ответ : Вам, вероятно, нужно объяснить больше, что делает ShowIfThisHideIfThat .

Если это зависит от одного условия, например:

if (condition)
    ShowBotton()
else
    HideButton()

, тогда я бы использовал

Button.SetVisibility(condition)

согласно комментарию Лазаренко выше или если у языка есть свойства:

Button.Visible = condition

Если у вас есть два условия вроде того, что ShowIfThisHideIfThat , по-видимому, подразумевает, эквивалентно:

if (cond1)
    ShowButton()
else if (cond2)
    HideButton()
else
    LeaveButtonAsItIs()

, тогда логика, на мой взгляд, сложна, и я бы не сталне использовать одну функцию.Конечно, код эквивалентен

Button.Visible = cond1 || (!cond2 && Button.Visible)

, но вы теряете понятность.

0 голосов
/ 09 сентября 2010

Путаница, кажется, происходит из-за смешения бизнес-логики и логики пользовательского интерфейса. Тест не в том, должна ли быть показана кнопка. Код будет использовать тест, чтобы решить, должна ли быть показана кнопка. Вероятно, это зависит от того, должна ли быть доступна какая-либо функция. Рассмотрим:

if (IsFeatureEnabled()) {
  ShowButton();
} else {
  HideButton();
}

Это код, в котором бизнес-логика (IsFeatureEnabled()) встречается с пользовательским интерфейсом (ShowButton() / HideButton()).

0 голосов
/ 09 сентября 2010

Как насчет использования SetButtonVisibility( )

...