Application

The Application layer is the area that separates the Domain Model from the clients that query or change its state. Application Services are the building blocks for such a layer. As Vaughn Vernon says: "Application Services are the direct clients of the domain model." You could think about an Application Service as a point of contact between the outside world (HTML forms, API clients, the command line, frameworks, UI, and so on.) and the Domain Model itself. It might help by thinking about the top-level use cases that your system exposes to the world, example: "as guest, I want to register," "as a logged user, I want to purchase a product," and so on.

In this chapter, we'll explore how to implement Application Services, understand the role of the Command pattern, and establish the responsibilities of an Application Service. To do this, let's consider the use case of signing up a new user.

Conceptually, in order to register a new user, we need to:

  • Get an email and password from the client
  • Check if the email is already in use
  • Create a new user
  • Add this new user to the existing user set
  • Return the user we've just created

Let's go for it.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset