현재 임베디드 시스템에 GUI
을 개발 중입니다. 읽기 전용 객체를 시뮬레이트하는 우아한 디자인
문맥 나는 임베디드 시스템을 시뮬레이션하는 클래스를 생성 한
(나는 progamatic 의미와 혼동을 피하기 위해 인터페이스 반대로 내 응용 프로그램을 descripe하는 GUI를 사용하고 있습니다). TCP/Serial 또는 두 개의 Connection
객체 사이의 가상 연결을 통해 통신 할 수 있도록 설계된 Connection
클래스를 통해 모든 통신을 수행합니다.
이 모든 것이 잘 작동하고 예상대로 시뮬레이션 된 객체와 GUI
이 가상 연결을 통해 통신합니다.
Diagnostic
패킷은 device
(실제 또는 시뮬레이션)에서 전송되며 GUI
으로 읽습니다. 이것은 내가 ControllerDiagnostic
라고 불렀던 클래스에 잘 맞습니다.
질문
내 질문은 ControllerDiagnostic
클래스에 관한 것이다. GUI
쪽에서 모든 속성은 읽기 전용 이어야합니다 (비공개 필드에 대한 반사를 통해 직접 계단식 제거가 수행됩니다). 시뮬레이션 측면에서 그들은 분명히 변경 가능해야합니다. 그럼 어떻게하면 우아하게 처리 할 수 있을까요? 나는 다음을 고려했다 :
ControllerDiagnostic
을 모방했지만 필드의 설정을 드러내는 완전히 새로운 클래스를 만든다.ControllerDiagnostic
의 모든 필드를 생성 한 다음 시뮬레이션 클래스 내에서 이러한 필드에 접근자를 제공하는 개인 중첩 클래스로 상속합니다.- 단지 두 클래스로 어셈블리를 만들고
Internal
설정기를 사용하십시오. - 속성을 읽기/쓰기로 그대로두고
GUI
에서 수정하지 말 것을 문서화하십시오. - C#을 다시 작성하면 C++에서와 동일한 방법으로
friend
을 사용할 수 있습니다.
아무 것도 나에게 이상적이지 않습니다.
감사