Что такое FDG для именования логических свойств? - PullRequest
7 голосов
/ 12 октября 2009

Что такое Framework Design Guideline для именования логических свойств? Если его нет, то какова ваша рекомендация?

Допустим, у меня есть класс User, и мне нужно свойство, которое указывает, включен ли пользователь или нет. Вот варианты, которые я могу придумать:

  • Включить
  • Включено
  • IsEnabled
  • Отключить
  • Disabled
  • IsDisabled

Кроме того, если BL говорит, что пользователь должен быть отключен по умолчанию и явно включен, я должен предпочесть вариант 'enable', учитывая, что значением по умолчанию для System.Boolean является false?

Ответы [ 2 ]

8 голосов
/ 12 октября 2009

В Руководстве по проектированию рамок (Брэд Абрамс и Кшиштоф Квалина) говорится, что нужно использовать либо Enabled, либо IsEnabled (раздел 3.6.2 ). Они говорят использовать утвердительные фразы (т.е. CanSeek вместо CantSeek) и использовать наиболее читаемую версию (т. Е. Created более читабелен, чем IsCreated).

Я бы лично использовал Enabled в вашем случае со значением по умолчанию false. User.Enabled хорошо читается и ясно, в чем его смысл.

2 голосов
/ 12 октября 2009

Я бы избежал варианта «отключен», так как двойное отрицание, например «отключено = ложь», понять гораздо сложнее, чем «разрешено = истина».

Я бы также предпочел прилагательную форму для свойства глаголу "включить", который был бы лучшим именем метода.

Это сужает его до «позволено» или «isEnabled», что, вероятно, является вопросом личного стиля и соглашения. Последний подчеркивает, что это бул; первый более лаконичен.

...