Speak or Listen
In the previous section, we learned about keeping our objects and methods separate, even when it seems at first glance that they are the same things or concepts.
After further analysis, we found that our code could be de-coupled, isolated, and modularized by paying attention not to data but to behavior and business functions.
This chapter is also about taking this idea of splitting our classes into different kinds of responsibilities.
CQRS
CQRS stands for Command Query Responsibility Segregation. It's a pattern that can be helpful when dealing with more complex business logic.
Well, I prefer to use it most of the time anyway, since it makes things much easier to reason about and removes even more coupling from our code.
At a very basic level, though (the level we are going to look at), the core idea is that you should always create different classes that deal with writes and reads.
Read and Write
Usually, when we create classes, they are...