실시간으로 데이터 을 수집하는 작성한 API가 있다고 가정하면독립적 인 스레드입니다. 데이터 액세스는 스레드로부터 안전하며 인터페이스를 통해 이루어집니다. 예 : getData()
은 차단하지 않고 최신 정보를 제공합니다. 이 API는 여러 응용 프로그램에서 사용됩니다. 일부 GUI 구동, 다른 콘솔 프로그램.Java : 내 API에서 이벤트 알림에 대한 내 옵션은 무엇입니까?
응용 프로그램에 데이터 업데이트가 있음을 알리는 옵션에는 어떤 것이 있습니까? 우리는 API가 애플리케이션에 의존하는 것을 원하지 않기 때문에 fireTableDataChanged()
또는 그와 유사한 API를 사용하고 싶지는 않습니다. (GUI 애플리케이션에서 API가 알려 주거나 API를 살펴본 후에 fireTableDataChanged()
등으로 전화 할 것입니다.)
감사합니다.
+1 - 나는 들리는만큼 끔찍한 생각으로 "직접 구현하십시오"는 좋은 선택입니다. 관찰자를 정기적으로 추가 및 제거하는 경우 EventProducer는 java.awt.AWTEventMulticaster에서 사용되는 스레드 안전 이벤트 멀티 캐스팅 논리를 따라 모델링하여 최적화 할 수 있습니다. –
구문 분석을 수정하여 <을 수정했습니다. @ 팀, 나는 그런 공통적 인 패턴에 대해 "자신 만의 구현"이 끔찍하다고 들었습니다. 표준이 없으면 하나의 사내 구현이 여러 가지 다른 클래스 구현 (불행한 경험에서 말하기)보다 낫습니다. 나는 청취자를 추가/제거하는 것이 최적화되어야하는 상황을 한번도 경험하지 못했다. AWTEventMulticaster는 Java 동시성 패키지 및 CopyOnWriteArrayListener를 선행하므로 읽기 쉽고 읽기 쉬운 스레드 안전 구현이 가능합니다. –
답변 해 주셔서 감사합니다. 어떻게 개요를 구현할지 API를 폴링할지/getData()를 블로킹할지 결정하는 방법은 무엇입니까? 어떤 이슈입니까? – Pete