2009-10-12 9 views
7

Co to jest Framework Design Guideline do nazywania właściwości boolowskich? Jeśli nie ma, to jaka jest twoja rekomendacja?Co to jest FDG do nazywania właściwości boolean?

Załóżmy, że mam klasę User i potrzebuję właściwości, która określa, czy użytkownik jest włączony, czy nie. Są to opcje można myślę:

  • Włącz
  • Włączone
  • IsEnabled
  • Wyłącz
  • niepełnosprawnych
  • IsDisabled

Ponadto, jeśli BL mówi, że użytkownik musi być domyślnie wyłączony i jawnie włączony, jeśli wolę odmianę "enable", co z informacją, że domyślną wartością dla System.Boolean jest false?

Odpowiedz

8

Założenia projektu ramowego (Brad Abrahms i Krzysztof Cwalina) mówią o użyciu albo Enabled lub IsEnabled (sekcja 3.6.2). Mówią, że używają zwrotów afirmatywnych (np. CanSeek zamiast CantSeek) i używają najbardziej czytelnej wersji (tj. Stworzony jest bardziej czytelny niż IsCreated).

Osobiście użyłbym w twoim przypadku Enabled z domyślną wartością false. User.Enabled czyta dobrze i jest jasne, jakie ma znaczenie.

+0

Interesujące jest to, że niektóre kody z Microsoft nie spełniają tych wytycznych, np. System.Web.Mvc.MvcHandler ma właściwość statyczną DisableMvcResponseHeader. Dlaczego zdecydowali się na wyłączenie? czy to dlatego, że jest on domyślnie włączony, a bool jest domyślnie fałszywy, więc domyślnie NIE jest on wyłączony? –

2

Chciałbym uniknąć "wyłączonej" odmiany, ponieważ podwójne negatywne, takie jak "disabled = false" jest znacznie trudniejsze do zrozumienia niż "enabled = true".

Wolałbym również formę przymiotnika dla właściwości do czasownika "enable", co byłoby lepszą nazwą metody.

To zawęzi to do "włączonego" lub "isEnabled", co jest prawdopodobnie kwestią osobistego stylu konwencji &. Ten ostatni podkreśla, że ​​jest to bool; ten pierwszy jest bardziej zwięzły.