[디자인 패턴] 액티브 오브젝트 패턴

[원본 링크]

액티브 오브젝트 패턴은 커맨드 패턴을 응용한 패턴 중 하나로, 보통 여러개의 스레드를 관리하는 데 사용된다. 스레드풀 같은걸 구현할때 말이다.

커맨드 패턴을 먼저 보자.
https://m.blog.naver.com/sssang97/221656321564

이건 사실 정식 패턴은 아니다. 그냥 응용한거지.

기본적인 구성은 간단하다.
실행 흐름을 표현하는 커맨드의 인터페이스를 두고, 스레드에 올릴 로직을 커맨드 인터페이스에 맞춰 구현하도록 한다. image

image

image

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

image

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

image 액티브 오브젝트 패턴의 기본적인 구성은 이렇다.

근데 아마 제대로 된 스레드 엔진이라면, run 흐름 자체를 별개의 스레드에 올려서 명시적인 run 호출 필요 없이 백그라운드에서 계속 돌아가게 할 것이다.


참조
[클린 소프트웨어], 로버트 마틴 저