Как правильно назвать класс относительно его пространства имен? - PullRequest
0 голосов
/ 10 марта 2009

Часто можно увидеть имена классов, несущие ссылку на пространство имен, к которому они принадлежат. Одним из наиболее популярных примеров является пространство имен .NET «Xml», где каждый определенный в нем класс имеет префикс «Xml».

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

Мне бы хотелось узнать, как люди на самом деле справляются с этой проблемой.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 10 марта 2009

Я использую подход «когда это уместно». Идея состоит в том, что вы хотите назвать ваши классы, используя имя, которое имеет смысл. В некоторых случаях это означает, что имя класса несколько избыточно с пространством имен, но имейте в виду, что пространства имен обычно не рассматриваются как часть имени класса в коде, а не как часть директивы using.

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

4 голосов
/ 10 марта 2009

Я склонен откладывать на рекомендации Microsoft по вопросам наименования.


Re: Комментарий Скотта.

Я думаю, что MS достаточно ясно понимает эту проблему, и это похоже на ваш ответ ОП. Например:

Не вводить имена общих типов такие как Элемент, Узел, Журнал и Сообщение. Там очень высокий вероятность того, что это приведет к имени типа конфликты в общих сценариях. Вы следует квалифицировать имена общих типов (FormElement, XmlNode EventLog, SOAPMessage).

В вопросе OP была сделана ссылка на пространство имен Xml. Если вы посмотрите на названия этих классов там, это довольно общие имена без добавленного к ним «XML» - Атрибут, Словарь, Документ и т. Д.

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

1 голос
/ 10 марта 2009

Мне нравится, что классы System.Xml имеют префикс Xml. Это помогает мне отличить их от общего аналога. Что такое документ по сравнению с XmlDocument? Становится понятнее с префиксом. На мой взгляд, все равно.

На своих занятиях я стараюсь следовать этому духу. Если я беру несколько обобщенное слово и оборачиваю его в своем классе, я могу использовать пространство имен в качестве префикса. Например:

MyProject.Client.Application будет конфликтовать с Application, который является классом .NET.

MyProject.Client.ClientApplication позволит избежать проблем со столкновениями, но при этом остается ясным, что делает класс (по крайней мере, с точки зрения моего проекта).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...