The Domain Driven Design (DDD) book discusses four conceptual layers: presentation, application, domain, and infrastructure. The application layer implements business tasks by coordinating work with the domain layer. For copying, Recording::Copyable creates a new Copy record. Filing is a common parent class for both the copy and move operations. The SRP violation we care more about is violation at the implementation level.
Table of contents
We don’t distinguish application and domain layersControllers access domain models directlyRich domain modelsWhat about services?The dangers of isolating the application layerConclusionsSort: