title: Specification pattern vs Extension method?
body: <p>I am trying to grasp specification pattern and i get confused a little about it. I really couldn't found it helpful for my specific requirements. I want to know that what is problem if i prefer extension methods for my complex spesifications? For example</p>
  
  <pre><code>public static class ProductExtensions
  {
      public static IQueryable&lt;Product&gt; InStocks(this IQueryable&lt;Product&gt; query)
      {
          return query.Where(p =&gt; p.InStock &amp;&amp; !p.IsDeleted /*others goes here*/);
      }
  }
  </code></pre>
  
  <p>I found it helpful to wrap my long specifications with an extension methods instead of using spesification pattern. What is wrong with this ?</p>