«observer-pattern» 태그된 질문

1
소비자 / 프로듀서와 관찰자 / 관찰 가능한 차이점
세 부분으로 구성된 응용 프로그램 디자인을 연구하고 있습니다. 특정 이벤트 (파일 생성, 외부 요청 등)를 감시하는 단일 스레드 이러한 이벤트를 처리하여 응답하는 N 작업자 스레드 (각 작업자 프로세스 및 단일 이벤트 소비 및 처리에 시간이 걸릴 수 있음) 해당 스레드를 관리하고 오류 처리 (스레드 재시작, 결과 로깅)를 수행하는 컨트롤러 이것은 …

4
로깅에 더 적합한 디자인 패턴은 무엇입니까?
프로그램에 일부 이벤트를 기록해야하지만, 프로그램의 실제 기능에 관한 것이 아니기 때문에 로깅 코드를 프로그램 외부에 유지하는 것이 좋습니다. 코드에서 완전히 제외하고 이벤트와 로그를 기록하는 데 Observers와 Listeners 만 사용해야하는지 말씀해 주시겠습니까? 또는 무언가를 기록해야 할 때마다 다음과 같은 코드를 추가 할 수 있습니다. MyGloriousLogger.getXXXLogger().Log(LogPlace, new LogObject(z1, z2, z3, z4, ..., …

3
관찰자 패턴; * 무엇이 바뀌 었는지 아십니까?
클래식 Observer 패턴 인터페이스를 정의하는 두 개의 추상 클래스 Subject와 Observer를 만들었습니다. Observer 패턴을 구현하기 위해 그것들에서 파생됩니다. 관찰자는 다음과 같이 보일 수 있습니다. void MyClass::Update(Subject *subject) { if(subject == myService_) { DoSomething(); } else if(subject == myOtherService_) { DoSomethingElse(); } } 이것은 괜찮으며 누가 무언가 를 바꿨 는지 알려줍니다 …

2
관찰자가 서로 독립적이지 않은 경우 관찰자 패턴이 적합합니까?
나는 class Car2 개의 속성을 가지고 있습니다 : int price및 boolean inStock. 그것은 또한 보유하고 List의 abstract class State(빈 클래스). 이 차에 적용 할 수 있으며, 각각 자신의 클래스에 의해 표현되는이 개 상태는 다음과 같습니다 class Upgrade extends State및 class Shipping extends State. A Car는 2 개 상태 각각에 제한이 …

4
.NET의 IObserver <T>가 여러 IObservable을 구독하기위한 것입니까?
.NET 에는 IObservable 및 IObserver 인터페이스가 있습니다 ( 여기 및 여기 ). 흥미롭게도 IObserver의 구체적인 구현은 IObservable에 대한 직접적인 참조를 보유하지 않습니다. 누가 구독했는지 알 수 없습니다. 구독자 만 호출 할 수 있습니다. "핀을 당겨서 탈퇴하십시오." 편집 : 탈퇴자는을 구현합니다 IDisposable. 나는이 체계가 리스너 문제 를 방지하기 위해 사용되었다고 생각한다 …

5
관찰자 패턴에 비해 델리게이트 패턴의 장점은 무엇입니까?
에서 위임 패턴 , 하나의 개체가 직접 다른 개체의 이벤트를 수신 할 수 있습니다. 에서 관찰자 패턴 , 객체의 수는 특정 개체의 이벤트를 수신 할 수 있습니다. 다른 객체에 이벤트를 알리는 클래스를 설계 할 때 왜 옵저버 패턴보다 델리게이트 패턴을 사용하겠습니까? 관찰자 패턴이 더 유연하다고 생각합니다. 지금은 하나의 관찰자 만있을 …

2
HTTP 및 TCP / IP를 통한 관찰자 패턴 (서버 클라이언트)
웹 응용 프로그램을 기반으로 서버에 연결하는 서버와 많은 클라이언트 (약 50 명의 클라이언트)가 있습니다.이 프로토콜은 HTTP 프로토콜을 기반으로합니다.이 프로토콜은 TCP / IP를 사용합니다 (잘못된 경우 수정). 네트워킹에 능숙하지 않습니다). 문제는 누군가가 위험한 값을 가진 양식을 제출할 때 관리자 (같은 웹 응용 프로그램을 통해 연결된 관리자)가 거의 실제 화면에서 경고 팝업을 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.