2013-06-05 9 views
0

Структура папки в файле проекта обсуждалась здесь несколько раз, но я хотел бы сузить вопрос дальше. Скажем, к примеру, мой проект организуется следующим образом с соответствующими пространствами именСтруктура папок, C#

[Project 1] 

[A(Folder)]  
    Class A    ConceptCheck.ClassA 
    [B(Folder)] 
    Class B   ConceptCheck.ClassA.ClassB 
[C(Folder)] 
    Class C    ConceptCheck.ClassC 

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

using ConceptCheck.ClassA; 
using ConceptCheck.ClassB; 
using ConceptCheck.ClassA.ClassC; 

      A a = new A(); 
      B b = new B(); 
      C c = new C(); 

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

+1

То, что у вас есть, кажется прекрасным. Количество пространств имен не замедляет производительность, и обычно это не должно замедлять развитие. Постскриптум вы можете ознакомиться с этой статьей: http://blogs.msdn.com/b/ericlippert/archive/2010/03/09/do-not-name-a-class-the-same-as-its-namespace- part-one.aspx –

ответ

1

Без следования тому, что было сказано здесь раньше, я думаю, что вам лучше назвать пространства имен не после папок или даже проектов, но таким образом, который включает в себя классы, которые принадлежат логически (с точки зрения системы/функциональности) ,

Например, у вас может быть несколько проектов - каждый из которых реализует определенный внешний API. Функционально подобный, делая то же самое для вашей системы, просто разные вкусы. Произнесите загрузку банковских выписок. Структура проекта может выглядеть следующим образом:

Project BankA 
    class BankADownloader 
Project BankB 
    BankBDownloader 
    HelperA 
    ExtensionsB 
Project BankC 
    ... 

Это имеет смысл использовать одно пространство имен для всех таких проектов, например, MySystem.StatementDownloaders

Я даю свое мнение, используя еще более широкий пример - несколько проектов. Но это в полной мере относится к одним проектам со многими папками. Чтобы использовать мой пример Bank-Statement-Downloader, вы можете захотеть организовать классы и другие артефакты в папки (по банкам), но опять же пространства имен, IMO, должны отражать общую функциональность (или другую перспективу логической архитектуры - например, уровень приложения) а не организации папок.

Надеюсь, что я не неверно истолковал ваш вопрос.

+0

Я согласен с вашим мнением. Мы должны организовать на основе функциональности – RobinAtTech

+0

Я согласен, что пространства имен должны быть названы в соответствии с логической функциональной группировкой объектов, которые они содержат. Но потом мне интересно, почему имена папок следует назвать иначе? –

 Смежные вопросы

  • Нет связанных вопросов^_^