[디자인 패턴] 액티브 오브젝트 패턴
액티브 오브젝트 패턴은 커맨드 패턴을 응용한 패턴 중 하나로, 보통 여러개의 스레드를 관리하는 데 사용된다. 스레드풀 같은걸 구현할때 말이다.
커맨드 패턴을 먼저 보자.
https://m.blog.naver.com/sssang97/221656321564
이건 사실 정식 패턴은 아니다. 그냥 응용한거지.
기본적인 구성은 간단하다.
실행 흐름을 표현하는 커맨드의 인터페이스를 두고, 스레드에 올릴 로직을 커맨드 인터페이스에 맞춰 구현하도록 한다.



그리고 이것들을 관리할 엔진 클래스에는 그 커맨드의 큐를 두고, 커맨드가 들어올때마다 추가.
큐에 쌓인 커맨드를 계속 실행하도록 한다.


그럼 이런식으로 실행해볼 수 있다.

액티브 오브젝트 패턴의 기본적인 구성은 이렇다.
근데 아마 제대로 된 스레드 엔진이라면, run 흐름 자체를 별개의 스레드에 올려서 명시적인 run 호출 필요 없이 백그라운드에서 계속 돌아가게 할 것이다.
참조
[클린 소프트웨어], 로버트 마틴 저