2010-01-26 2 views
2

데이터 로깅 소프트웨어를 개발하는 VB.Net에서 작업하고 있습니다. 우리 회사에서 생산하는 많은 데이터 로거와 작동하는 공용 인터페이스를 구현하는 클래스를 개발했습니다. 이 클래스는 하위 레벨 하드웨어 인터페이스를 처리하고 데이터 로거 레코드에 액세스하기위한 일반적인 메소드를 노출합니다.모범 사례 : 해당 클래스를 나타내는 클래스에서 하드웨어 단절 처리

내 문제는 누군가 하드웨어를 갑자기 연결 해제하는 것을 처리하는 좋은 방법이 무엇입니까? 일종의 상태 패킷에서 예외를 throw하거나 이벤트를 발생 시키거나 false를 반환해야합니까?

내 기본 생각은 보낸 장치가 나타내는 장치가 연결이 끊어지고 실패 할 때 개체가 보낸 사람에게 장치가 자동으로 감지되고 컬렉션을 유지하는 DeviceLocator 클래스와 통신하도록하려는 것입니다. 연결 해제하고 장치 모음에서 제거하여 처분하십시오.

팁이 있습니까?

+0

"우수 사례"를 의미한다고 생각합니다. – aphoria

+0

죄송합니다. 나는 그것을 뚱뚱하게 손가락으로 가리켰다. – Andrew

답변

1

높은 수준에서 결과 코드 또는 "드라이버"레이어의 오류 메시지를 반환해야한다고 생각합니다. 길 아래로 다른 유형의 클라이언트에 데이터 패킷을 노출 할 수 있습니다. WCF 클라이언트 또는 모바일 클라이언트가 웹 서비스를 호출하는 경우 예외를 throw하거나 이벤트를 발생시키는 것은 유용하지 않습니다. 이러한 조건을 포착하고 각 클라이언트에 대해 변환하는 또 다른 계층을 만들어야하므로 가장 낮은 수준에서이 작업을 수행하는 것이 좋습니다.

자세한 답변은 실제 아키텍처에 따라 다릅니다. 예를 들어 델리게이트를 사용하여 소비자에게 새로운 데이터를 알리십니까? 오류 조건이있을 때 호출되는 대리자가없는 이유는 무엇입니까?