In this chapter you will create the user registration feature. Before doing so, I want to take some time to point out a few things about the chapters where you create features for the sample project, as this is the first such chapter.
For each chapter where you create a feature, you will start by reviewing the requirements for that feature and make some decisions about how you will implement them.
After those decisions have been made, you will follow a prescribed order for creating your classes. This order is not mandatory, nor endorsed by any specific party associated with Cairngorm, but I have chosen it because I tend to start by creating classes that will be used by other classes.
First you will identify, and if necessary create, any value object classes (in some cases you will use value objects that have already been created). You create these first as they will sometimes be used by your event classes to pass around data. They will also be used by views to display data and as variables in the ModelLocator class.
Next you will create the event classes, as these are necessary to trigger the functionality of the other classes and are referenced by your command classes. By knowing the implementation of your event classes, you can structure your command classes to take advantage of the properties of a specific event class. Additionally, creating event classes at this point allows them to be available when you create your views, as views will need to ...