2013-06-05 5 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 예제를 사용하려면 클래스 및 기타 아티팩트를 폴더별로 (은행 별) 구성 할 수 있지만 공통된 기능 (또는 응용 프로그램 계층과 같은 다른 논리 아키텍처 관점)을 반영해야합니다. 폴더 조직보다

나는 당신의 질문을 오해하지 않기를 바랍니다.

+0

의견에 동의합니다. 기능을 기반으로 구성해야합니다. – RobinAtTech

+0

네임 스페이스의 이름은 해당 개체의 논리적 기능 그룹에 따라 지정해야한다는 것에 동의합니다. 그런데 왜 폴더의 이름을 달리 지정해야합니까? –