title: DDD: what are the OOP alternatives for procedural Application Services?
body: <p>I recently got a book Patterns, Principles and Practices of Domain-Driven Design by Scott Miller and Nick Tune. It has some nice examples in C#, so a bit different from the other DDD books I read before which was in Java. The Domain event implementation is very neat due to C#'s support for delegate and event. </p>
  
  <p>However, there is one thing that worries me, as the book stated in the chapter of application service that it should be 'procedural in style and thin'. I understand that application layer is meant to be thin, but why procedural in style? I dont want to write procedural code, or I wouldnt have chosen DDD in the first place. I also found that this stackoverflow article also labels Application Services are procedural code:</p>
  
  <p><a href="https://softwareengineering.stackexchange.com/questions/279369/conceptual-mismatch-between-ddd-application-services-and-rest-api">https://softwareengineering.stackexchange.com/questions/279369/conceptual-mismatch-between-ddd-application-services-and-rest-api</a></p>
  
  <p>So you see? Application services are procedural in style, and not OOP. This makes me wonder whether I can improve the design to be more OO by replacing application service's procedural interface by an OO interface. This article suggests that method objects will do, and does it work? What are the more OO alternatives to procedural application services? Can anyone elaborate? </p>
  
  <p><a href="http://ayende.com/blog/2145/entities-services-and-what-goes-between-them" rel="nofollow noreferrer">http://ayende.com/blog/2145/entities-services-and-what-goes-between-them</a></p>