>That's an abstraction more easily and succinctly solved by higher-order functions.
Definitely a legitimate approach. In my mind, it seems to be describing Dependency Injection or some type of Strategy Pattern. The activity is defined using "roles" (interfaces) in some use-case class and then implementations of those interfaces are injected.