What I see is that the logic in the base class is very tied to the logic of the concrete strategy itself. It has the `execute` and `executeConcurrently` methods, but they're not generic. They perform very concrete operations by calling the concrete `api.get*` methods, so they would be mostly reused by the strategy itself. That's why I think it makes sense to have them in the same class.
The concrete strategy class only performs the "list" operation, and I can't think about a different strategy that could take benefit from using only the base class, therefore my feeling that this is kind of a premature optimization that is just adding unnecessary complexity given the existing implementations of the strategies. Anyway, there's no need to change it now :) Let's change the unnecessary methods from the interface and let's see if someone else has something to say. --- Reply to this email directly or view it on GitHub: https://github.com/jclouds/jclouds-chef/pull/47#issuecomment-49048087
