C # 클래스 명명 규칙 : BaseClass 또는 ClassBase 또는 AbstractClass
기본 클래스 이름 지정에 권장되는 접근 방식은 무엇입니까? 유형 이름 앞에 " Base "또는 " Abstract "를 붙입니까? 아니면 "Base"를 접미사로 붙이 겠습니까?
다음을 고려하세요:
유형 : ViewModel
예 : MainViewModel , ReportViewModel
기본 클래스 : BaseViewModel
또는 ViewModelBase
또는AbstractViewModel
다음 사항도 고려하십시오.
유형 : Product
예 : VirtualProduct , ExpiringProduct
기본 클래스 : BaseProduct
또는 ProductBase
또는AbstractProduct
어느 것이 더 표준이라고 생각하십니까?
class Entity : EntityBase
{
}
또는
class Entity : BaseEntity
{
}
예를 들어 기본 접미사와 프레임 워크의 사례가있다 System.Configuration.Provider.ProviderBase
, System.Web.SessionState.SessionStateStoreProviderBase
.
그러나 결코 프레임 워크의 모든 추상 기본 클래스는이 규칙을 따릅니다 (예를 들어 System.Data.Common.DbParameter
, System.Data.Common.DbCommand
).
개인적으로 나는 그것이 추상 클래스라는 사실을 강조하고 싶지 않고 클래스의 사용자가 이름이 구체적인 구현을 나타내는 것으로 기대할 수 있다고 생각 하지 않는 한 접미사 사용을 피할 것입니다.
위의 어느 것도 없습니다. 기본 클래스가 제공하는 목적을 고려하십시오. 이름을 지정하십시오. 예를 들어, Automobile and Bicycle의 기본 클래스는 Vehicle이 될 수 있습니다.
한 클래스의 기본 클래스를 갖기 위해 기본 클래스를 만들고 그 이외의 목적이나 이유가 없다면 아마도 뭔가 잘못하고있을 것입니다.
가상 기본 클래스에 대해 이야기하는 경우 Microsoft의 표준은 ClassnameBase (CollectionBase와 유사)입니다.
나는 그것이 선택의 문제라고 생각합니다. 많은 기본 클래스를 만드는 경우 항상 BaseClassname을 사용하는 것이 더 낫습니다. 그러면 Base를 입력하고 나머지 도움을 받아 사용할 수있는 기본 클래스를 항상 찾을 수 있기 때문입니다. Intellisense. 20 개의 Base 클래스가 있고 Base를 접미사로 추가했는데 기본 클래스의 이름이 무엇인지 잊어 버린 경우 어떻게해야합니까? VS에서 먼저 클래스 다이어그램을 만들고 사용 가능한 기본 클래스를 확인 하시겠습니까? 하나 또는 두 개의 클래스 일 때 ClassBase라는 이름을 지정하는 것이 좋습니다.
GetItems와 ItemsGet 함수 간의 결정도 마찬가지입니다. 가독성을 위해 최소한 말하고 싶습니다. GetItems로 가십시오. 규칙을 따르십시오 :)
우리는 BaseEntity를 사용하지만 자신이 선호하는 것으로 생각합니다. 나는 자주 다른 것을 본다.
컨텍스트 내에서 일관성을 유지하십시오. 프로젝트, 네임 스페이스 또는 가능한 경우 팀이 되십시오. 다른 규칙은 나쁜 규칙 IMHO보다 나쁩니다.
개인적으로 base라는 단어를 추가하지 않는 것이 좋습니다. 언제 코드를 변경해야하는지 알 수 없으며 더 이상 기본 개체가 아닙니다. 즉, 과거에이 작업을 수행했으며 앞에 Base라는 단어를 접두사로 붙였습니다. 더 잘 흐르는 것 같습니다.
BaseEntity는 낙타 케이스 (strName, bseEntity)와 매우 유사합니다. 주제를 먼저 정의하기 때문에 EntityBase를 사용하면 기능을 더 빨리 식별 할 수 있습니다.
이름을 지을 때 항상 알파벳순으로 생각하십시오. 저는 SQL 서버를 보는 것을 정말 좋아하지 않으며 모든 저장 프로 시저의 이름은 usp [something]입니다. 같은 줄에서 Get 및 Set를 함수의 선행 이름으로 과도하게 사용하지 마십시오. GetItems 또는 PlaceOrder 대신 ItemsGet 또는 OrderPlace로 이름을 지정하는 것을 고려하십시오.
따라서 일반적으로 ClassnameBase / EntityBase가 더 나은 선택이 될 것입니다.
'IT story' 카테고리의 다른 글
다른 스크립트에 (소스) R 스크립트를 포함하는 방법 (0) | 2020.08.12 |
---|---|
Java에 Annotation Inheritance와 같은 것이 있습니까? (0) | 2020.08.12 |
표준 C ++ 라이브러리에서`int pow (int base, int exponent)`가 아닌 이유는 무엇입니까? (0) | 2020.08.12 |
Elixir / erlang은 마이크로 서비스 접근 방식에 적합합니까? (0) | 2020.08.12 |
실제 폴더로 Visual Studio 솔루션 폴더 (0) | 2020.08.12 |