실제 장치를 다루는 프로젝트에서 일하고 있으며이 프로젝트에서 일부 클래스의 이름을 올바르게 지정하는 방법에 대해 혼란스러워했습니다.
실제 장치 (센서 및 수신기)가 한 가지이며 소프트웨어에서 의 표현 이 다른 것도 고려할 때 "Info"접미사 이름 패턴으로 일부 클래스의 이름을 지정하려고합니다.
예를 들어, a Sensor
는 실제 센서를 나타내는 클래스이지만 (실제로 일부 작동 장치에 연결된 경우) SensorInfo
해당 센서의 특성 만 나타내는 데 사용됩니다. 예를 들어 파일을 저장할 때을 직렬화하는 SensorInfo
대신 파일 헤더에 a를 직렬화하면 Sensor
이해할 수 없습니다.
그러나 이제는 하나의 객체를 사용해야하는지 또는 다른 것을 가져 오는 방법을 결정하거나 두 변형을 실제로 하나의 클래스로 축소해야하는지 여부를 결정할 수없는 객체의 수명주기에 대한 중간 근거가 있기 때문에 혼란스러워합니다.
또한 너무 일반적인 예제 Employee
클래스는 분명히 실제 사람을 나타내는 것입니다. 그러나 아무도 EmployeeInfo
아는 한 클래스 이름을 제안하지 않습니다.
내가 사용하는 언어는 .NET 이며이 명명 패턴은 프레임 워크 전체에서 공통적 인 것으로 보입니다.이 클래스의 예는 다음과 같습니다.
Directory
그리고DirectoryInfo
수업;File
그리고FileInfo
수업;ConnectionInfo
클래스 (대응Connection
클래스 가 없음 );DeviceInfo
클래스 (대응Device
클래스 가 없음 );
그래서 내 질문은 :이 명명 패턴을 사용하는 것에 대한 일반적인 근거가 있습니까? 이름 쌍 ( Thing
및 ThingInfo
) 을 갖는 것이 합당한 경우와 ThingInfo
해당 Thing
클래스가없는 클래스 또는 클래스 만 존재하는 다른 경우가 있습니까?
Foo
인스턴스화 할 수없는 유틸리티 클래스가있을 수 있습니다 Foos
. 이름 지정과 관련하여 중요한 것은 API 내에서의 일관성과 이상적으로 플랫폼의 API 간입니다.
Employee
, EmployeeInfo
아직 보지 못했지만 온라인이나 고전 서적에서 수십 명이 예를 볼 수 있습니다. 연결 또는 파일과 같은 기술적 구성). 그러나 수업 EmployeeInfo
이 프로젝트에서 제안 된다면 , 나는 수업 을 사용할 수 있다고 생각합니다.
Info
접미사는 구분static
의 상태 대응에서 유틸리티 메소드를 포함하는 클래스를. "모범 사례"는 아닙니다. 그것은 .NET 팀이 특정 문제를 해결하기 위해 고안 한 방법입니다. 그들은 단지 쉽게이 함께 올 수FileUtility
와File
있지만,File.DoSomething()
및FileInfo.FileName
더 읽을 것 같다.