태그 보관물: naming

naming

관련 클래스 및 인터페이스의 이름 지정 수 있음). 구현의 예 IObjectParserDataSource는 다음 과

데이터 소스로 데이터를 ObjectParser사용하여 데이터를 강력한 형식의 개체로 구문 분석 하는 클래스를 만들었습니다 IObjectParserDataSource(데이터는 Excel 파일, 텍스트 파일, 배열, 쿼리 문자열 등일 수 있음).

구현의 예 IObjectParserDataSource는 다음 과 같습니다.

  • TextFileObjectParserDataSource
  • ExcelFileObjectParserDataSource

이 수업 이름은 정말 길고 복잡합니다.

나는 그들을 지명 할 수 있었다 :

  • TextFileDataSource
  • ExcelFileDataSource

그러나 이것은 어느 정도의 모호성을 나타내며 IObjectParserDataSource언뜻보기에 명확하게 관련되지 않았습니다 . 이러한 데이터 소스를 정의하면 클라이언트 코드에서 발생하므로 혼란과 불확실성을 최소화하고 싶습니다.

그러한 시나리오에서 이러한 클래스의 이름을 어떻게 지정 하시겠습니까?



답변

나는 일반적으로 모든 유사한 객체를 하나의 네임 스페이스에 붙이고 이름을 단순화 하여이 문제를 해결하려고합니다 (가능한 경우).

예를 들어

네임 스페이스 ObjectParserDataSources
|
|-> 클래스 TextFileSource
|-> 클래스 ExcelFileSource

또는 작업 / 서비스 작업하는 개체 컬렉션 ObjectParser이 충분히 커지면 ObjectParser 전용의 별도의 폴더 트리 또는 프로젝트를 만듭니다.

namespace ObjectParser
|
|-> class ObjectParser
|-> interface IObjectParserDataSource
|
|-> namespace DataSources
|   |
|   |-> class TextFileSource
|   |-> class ExcelFileSource
|
|-> other stuff...

특정 파일 내에서 import 문 및 코드 컨텍스트는 일반적으로 꽤 분명 할 것이다 TextFileSource는 IS ObjectParser데이터 소스. 동일한 코드에 비슷한 이름의 클래스가 여러 개 있으면 TextFileSource전체 이름으로 참조 할 수 있습니다 .

var parserSource = new ObjectParser.DataSources.TextFileSource(/*...*/);

일반적으로 매우 드물게 발생하며 몇 단어를 더 입력해도 괜찮습니다.


답변