title: How to make different interface for each strategy?
body: <p>I have following situation. </p>
  
  <p>I make ad rotation and I want to have a few strategies. But how to do it, when different strategies needs different params? </p>
  
  <p>e.g.: </p>
  
  <p>LeastShowedStrategy needs only collection of ads </p>
  
  <p>but</p>
  
  <p>UserRelevantStrategy needs both collection of ads and user</p>
  
  <p>Is there some way how to do it clean or should I give up doing this with Strategy Pattern?</p>
  
  <p>update: 
  There are a few lines of code, i wrote. I do not know, how to parametrize Strategy, when every strategy has different needs. </p>
  
  <pre><code>class MyEngine::AdsHelper
      def get_ad
          ads = get_all_possible
          Engine.strategy.get_next(ads)
      end
  end
  
  class MyEngine::Engine
      attr_accessor :strategy
  end
  </code></pre>
  
  <p>initializer:</p>
  
  <pre><code>MyEngine::Engine.strategy = MyEngine::Strategies::ConcreteStrategy.new 
  </code></pre>