A: Interactor
Yeah it confused me that there wasn't a presenter. After all, we were told in other videos that the use case interactors drive the views through the presenter interface.
I think in these early stages of the case study, we haven't acknowledged the presenter as its not required for the tests we are doing. We are just trying to get the basics of the use case implemented and defining the gateway interface and how its used.
Im expecting that at some point, a Use Case / Interactor interface will be created with a command method like execute(), and a presenter interface which the use case uses. If the delivery mechanism then uses the Use Case interface, the public methods we see now will be unknown to it. Im not 100% sure, but I think we have these other public methods returning values as it helps us with acceptance tests, and it may also be useful for other use cases to call these methods later on?
Later in the series I think we will start seeing tests and functionality that are more closely linked to what we've seen in previous videos and we will start calling presenters based on the logic we have currently implemented.
D: Context
We are using this to inject some of the dependencies into the application. It saves having to add a gateway constructor argument etc to every use case. Again, could be wrong, but I see myself using my IoC container to provide this context in a real implementation. Both are singletons.