title: What is the opposite of domain driven design?
body: <p>I'm looking for a term that describes a design pattern (or anti-pattern) that describes when a system is organized by generalizations rather than the terms of the business.</p>
  
  <p>For example consider the domain driven example of:</p>
  
  <pre><code>Customer.Load
  Account.Load
  Orders.Load
  </code></pre>
  
  <p>vs:</p>
  
  <pre><code>Load.LoadCustomers
  Load.LoadAccounts
  Load.LoadOrders
  </code></pre>
  
  <p>Another example could be seen here in mvc:
  <a href="https://stackoverflow.com/q/1944972/852208">ASP.NET MVC - putting controller &amp; associated views in the same folder?</a></p>
  
  <p>While more about organization vs design, the comment from pettys IMO is correct:</p>
  
  <blockquote>
    <p>Realize that there are two dimensions of the system at odds here, the
    architectural and the business. The original poster wants to keep all
    parts that deal with a certain business concern in one place. The
    default ASP.NET MVC layout spreads a single business concern out quite
    a bit so that architecturally-similar classes can stay together.
    Between these two choices I'd rather have things grouped by business
    concern than by architectural concern</p>
  </blockquote>
  
  <p>There is only one way to physically organize the project.  The OP is asking to organize by domain and pettys describes the default organization as "architecturally" organized.  But it is this "architectural" organization that I'm better trying to classify.</p>
  
  <p>It seems to me that this is aspect-oriented <em>design</em>, ie design favoring a classification with respect to a general process instead of specific terms of the business.  I do not intend to confuse this with aspect-oriented programming which can be complementary to DDD, but it IS confusing which is why I'm wondering if there is a better name.</p>