When implementing a strategy template, how do you determine which class is responsible for:
Choosing a specific implementation of a specific strategy for moving to the Context class (assuming that the choice is based on some complex business logic, and not on a static flag)
Performing the above specific implementation and actually implementing it in the Context class
There seems to be some kind of objective guidance that covers this. I read several different OOP drawings (i.e., GRASP and SOLID ), but I still do not understand this specific issue very clearly.
source
share