-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Is this package structure correct? #27
Comments
What about if you have som cloud storage/networking for Amazon S3 and EC2 or Google App engine/FIrebase. Where should the classes for these operations be? |
Nothing is black or white in software development. So your packages are good, but you'll probably find issues in a big App. But you can refactor during the process, so I wouldn't worry too much about it. The thing is that interactors can be easily reused, so you'll probably want to have them in a separate package (or even module). The second question you ask is closely related to the first one. As those are components that will be reused (for instance) by many interactors, they are a separate entity, so should live in a separate package. You could have something like this:
The experience has taught me since I wrote this code almost 4 years ago (and you'll probably feel the same at some point) that the interfaces for presenters and interactors are not of much use, so you can get rid of them. This is one of the many possibilites, it's more a matter of taste that something written into stone. So try different things and extract your own conclusions. |
Thanks for grate work As I understand in your androidmvp code, every view have a presenter that has a view interface to dispatch messages back to that view, and same for interactors that has the presenter interface to dispatch messages back up to presenter |
Yup, it's the other way round. You don't need a presenter interface, something like:
Because you will usually only have one implementation of the presenter, so it's redundant. As there's no dependency inversion here (I'll talk about this in an article soon), it's extra work without much benefit. |
Thanks I stil have much to learn thanks for the lessen. Do you mean I should look at the In your androidmvp code it looks really ok with the interfaces but it´s just a small small demo and the interfaces makes sense there, ok get it thanks for the lesson |
In a large App, you would see that you create interfaces that are not used for anything else in this case. If you could have several presenters implementing the same interface, that would be useful. But normally not the case. In any case, using them won't hurt either, and can have some benefits for testing purposes. |
In my attempt to understand MVP I have structured the classes in their own package, where each packaged is named as: model, view, presentor, in respect to the classes role. Is it correctly done?
The text was updated successfully, but these errors were encountered: