Active object
활성 객체 디자인 패턴은 각각 고유 한 제어 스레드에있는 객체에 대한 메소드 호출에서 메소드 실행을 분리합니다. 목표는 요청을 처리하기 위해 비동기 메소드 호출 및 스케줄러를 사용하여 동시성을 도입하는 것입니다.
패턴의 6가지 요소
- A proxy, which provides an interface towards clients with publicly accessible methods.
- An interface which defines the method request on an active object.
- A list of pending requests from clients.
- A scheduler, which decides which request to execute next.
- The implementation of the active object method.
- A callback or variable for the client to receive the result.
용어
- Object: 객체로 호출하면 바로 반응한다.
- Actor: 능동적인 객체 (즉 자신의 쓰레드가 있고 큐를 가지고있다) 호출하면 바로 응답하지 않는다.
- Reactor: Actor 에 추가적으로 해당 이벤트에 대한 핸들러가 매핑되어서 디스패치하는 구조. (Selector 느낌)
- Proactor: 행위를 Actor 에 넘겨서 그 행위에 대한 결과를 받은 구조. (IOCP 느낌)
- ActiveObject: 행위할수 있는 Actor 에게 자신의 요청 사항을 넘겨준후에 Future 객체를 이용하여 결과 파악을 함.