그것은 나쁜 생각을 노출하는 상속에서 계층구조는 네임스페이스 구조는?

StackOverflow https://stackoverflow.com/questions/18608

문제

나는 그룹의 상호 관련 클래스는 모든 재정의를 만들어 함께 특정 구현합니다.나는지 궁금하다면 그것은 좋은 아이디어로 묶 상호 연관된 하위 클래스에서는 네임스페이스가 있습니다.

목적 예를 들어,다음을 고려 네임스페이스 클래스:

namespace Protocol
{
  public abstract class Message { }
  public abstract class Driver { }
}
namespace Protocol.Tcp
{
  public class TcpMessage : Message { }
  public class TcpDriver : Driver { }
}
namespace Protocol.Ftp
{
  public class FtpMessage : Message { }
  public class FtpDriver : Driver { }
}

무엇을 구성하는 가장 좋은 방법은 네임스페이스?그것은 피할 수 없는 것 같을 노출하는 상속에서는 네임스페이스 때문에 기본 클래스지 않아 정말 속에서 하나의 프로토콜입니다.Tcp 네임스페이스 또는 프로토콜.Ftp 네임스페이스가 있습니다.

도움이 되었습니까?

해결책

내가 생각하는 당신은 아마도 너무 걱정!

그것은 감각을 논리적으로?당신은 어디 있는지 알 코드 내에서의 네임스페이스?

전 오히려 볼 codebase 위와 같이 적은 수의 클래스,관련된 이름을 가진 계층보다,하나의 큰 네임스페이스는 모든 상호..

기억,namespacing 이 정확하게 이해 정 codebase 논리적으로

당신이 무엇을 논리적 보인다:)

편집:

예를 들어:

using System.Data;
using System.Data.Sql;

;)

다른 팁

원래 태그쇼는 이 게시물에 대 C#따라서 여러 상속가 irrelevancy-할 수 없습니다 곱 상속에서는 C#.

어쩌면 당신은 고려해야 정의 몇 가지 인터페이스를 정의하는 기본적인 계약의 MessageDriver 은 그리고 당신은 느낄 수 있는 조금 무료-어을 사용하는 네임스페이스 구조는 모방 기술 차이점이 있습니다.

이전 정의하는 네임스페이스 2:

Protocol

Protocol.Driver

나누는 네임스페이스는 다음과 같이 구분하"라이브러리 코드"vs"너의 실행 가능 테스트/코드입니다." 나도 만들어 내는 네임스페이스와 일치하는 디렉토리 구조;을 줄 것이 논리를 프로그램 구조 및 codefiles.(어쩌면 당신은 이미 작업을 수행합니다.)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top