2009-11-19 2 views
4

그룹화 된 집합에 대해해야 할 일에 대해 너무 확신하지 못합니다.(규약) C# 클래스 이름

내 상황 : 클래스 Character.cs과 관련된 11 개의 클래스가 있는데 그 중 모든 클래스 (Character.csCharacterManager.cs 포함)는 Models.Characters 네임 스페이스 내에 있습니다.

클래스 이름의보다 "적절한"또는 바람직한 방법이되는 경우 :

(예) :

CharacterDetails.cs CharacterSprites CharacterAppearance CharacterClientRights CharacterServerRights

또는 :

Details.csClientRights ServerRights

Sprites Appearance 는 (그들은 모두 너무 예 (Models.Characters에 주목하고 있습니다. Models.Characters.CharacterDetails, Models.Characters.Appearance)

미리 감사드립니다.

답변

6

나를 위해 개인적으로 "의존"합니다. 보통 Character이라는 단어를 접두사로 사용하여 모든 것을 접두사로 사용합니다. 그러나 모든 항목이 이미 Character 네임 스페이스 아래에 있으면 문자 접두사가 중복 될 수 있습니다.

내가 할 수 쉽게 다른 클래스가 Details가 호출되지 않습니다 적이있는 경우, 예를 들어 지금부터 코드 몇 주 또는 몇 달에 다시 볼 때 UserDetails 다음 DetailsUserDetails 혼란이 될 수있을 수있을 경우, Models.Character.[X]의 짧은 대회로가는 참조 개인적으로는 CharacterDetails 옵션을 선호합니다.

궁극적으로 도메인을 정확히 나타내는 것은 Details 또는 CharacterDetails입니다.

6

개인적으로 두 번째 방법은 네임 스페이스가 필요한 것입니다. 즉 관련된 클래스 집합을 그룹화하는 것입니다. 첫 번째 방법은 클래스 이름을 무시할 수있는 이익으로 길게 만드는 것입니다.

2

정말 개인적인 취향입니다. 더 읽기 때문에

나는

CharacterDetails 
CharacterSprites 
CharacterAppearance 
CharacterClientRights 
CharacterServerRights 

을 선호한다.

당신은 일반적으로 전체 표기법을하기 위하여려고하지 않는

Models.Characters.Appearance 

의 using 문을 것입니다.

나는 가독성을 높일 수있는 모든 것을 선호합니다. 프로젝트와 함께 일하는 팀이 중요 할 수 있습니다. 자신이 가장 좋아하는 것을하는 것보다 더 나은 일을하고 미래에 코드를 유지 관리하는 데 도움이 될 것입니다.

2

귀하의 네임 스페이스는 이미 Characters 우산 아래에 해당 클래스를 그룹화하고 있으므로 Character이라는 별명으로 클래스 이름을 지정하지 마십시오.

2

아마도 여기에 맞거나 틀린 대답이있을 것입니다. 나는 자신의 첫 번째 스타일을 선호하지만, 나는 두 번째 스타일도 사용했다. 이 특정 상황에서 내가 API 호출자라면 첫 번째 스타일을 사용하는 코드를 더 쉽게 읽을 수 있다고 생각합니다.

1

이름 지정 클래스로 인해 발생할 수있는 모호성을 생각해보십시오. 예를 들어 나는 "CharacterThread"(가상)과를 나타내는 "스레드"라는 클래스가있는 경우 다른 클래스는 두 개의 네임 스페이스

Models.Characters System.Diagnostics 네임

를 사용하는 경우 내가 완전히 스레드 이름을 규정해야합니다

언제든지 사용할 수 있습니다 ... 때로는 고통이 될 수 있습니다.

2

하나를 골라서 코드를 일관되게 사용하는 한, 당신이 선택한 것이 맞습니다.

내 개인적인 선택이 두 번째 옵션입니다. 네임 스페이스가 문자 인 경우 클래스 이름에 접두사 문자를 사용할 이유가 없습니다.

+0

이 답변에 잘못이 있습니다. 완벽하게 유효합니다. 왜 왜 downvote입니까? downvote하려고한다면, 적어도 이유를 말할 수있는 일반적인 예의가 있어야합니다. – Jeremy