Mówiąc CQS mam na myśli Command-query separation, czyli hasło opisujące metodę która albo zwraca wynik ale nie modyfikuje stanu, albo modyfikuje stan, ale nic nie zwraca.
Mam kilka obiektów, które dostają jakąś wartość, i z tą wartością, albo wykonuje jakąś akcję (powiedzmy wysłanie maila), albo zwraca response (zawsze jedno albo drugie).
Potrzebuję zdynamizować te obiekty (żeby można było je przekazywać w runtimie'ie), i właśnie chciałbym mieć taki kompozyt, na którym mogę właśnie albo wykonać wszystkie akcje, oraz zwrócić response'y (bo może być że niektóre obiekty w kompozycie zrobią swoją akcje i nie zwrócą response'ów, albo nic nie zrobią i zwrócą response).