모든 옵저버 목록을 저장하는 Observable 클래스를 구현했습니다. 이 목록에는 메모리 누수를 방지하기 위해 옵저버에 대한 약한 참조가 있어야합니까?옵저버의 약한 참조를 사용하는 것이 좋습니다.
일반적인 관행은 무엇입니까?
모든 옵저버 목록을 저장하는 Observable 클래스를 구현했습니다. 이 목록에는 메모리 누수를 방지하기 위해 옵저버에 대한 약한 참조가 있어야합니까?옵저버의 약한 참조를 사용하는 것이 좋습니다.
일반적인 관행은 무엇입니까?
반드시 그렇지는 않지만, 상황에 따라 다릅니다. 일부 관측자는 로깅과 같은 간단한 작업을 수행하기를 원할 수 있으며 Observable 객체에 의해 유지되는 것을 선호합니다. 가장 좋은 방법은 선택 사항을 명확하게 문서화하여 관찰자가 명시 적으로 등록 취소해야하는지 여부를 알 수 있도록하는 것입니다. 이 스레드 안전을 처리하고 당신을 위해 순서를 호출로 주제 오프
, 당신은 .NET 4에서 수신 만이 아니라 IObservable
인터페이스를 사용하는 경우, 당신은 Subject
의 개인 인스턴스를 통해 Subscribe
전화를 매핑해야합니다. 그런 다음 주제 인스턴스에 On*
으로 전화 할 수 있습니다.
주제에 대해 구독자는 자신의 구독을 관리하는 것이 일반적입니다. 최소한이 값은 Subscribe
반환 값을 처리하는 것을 의미하지만 Rx에서 구독은 대개 다른 연산자 (예 : Take
또는 TakeUntil
)에 의해 종료됩니다.
Okxx .. 내 경우 엔 객체를 유지하는 데별로 관심이 없습니다. 그러나 모든 참조가 없어지 기 전에 removeObserver를 호출하면이 작업을 수행 할 수 있습니다. 내가 그것을 잊어 버리면, 그 물건은 살아있게 될 것입니다. 최고의 디자인은 무엇입니까? 프로그래머가이를 추적해야하거나 약한 참조를 사용하는 것이 좋습니다. – joynes