실제 장치를 다루는 프로젝트에서 일하고 있으며이 프로젝트에서 일부 클래스의 이름을 올바르게 지정하는 방법에 대해 혼란스러워했습니다.
실제 장치 (센서 및 수신기)가 한 가지이며 소프트웨어에서 의 표현 이 다른 것도 고려할 때 "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더 읽을 것 같다.