Thanks for the response. I shall have a look at those links later
tonight.
> If you value theory and "purity" more than pragmatism and productivity, then
> yes, it probably violates the pattern, as it doesn't use the observer
> pattern.
My concern is not that passing the presenter to the view is a bad
thing per se, but that when doing so we can not say we have
implemented the MVP pattern anymore, as in each design pattern the
collaborators, their responsibilities, and the relationships between
them are set in stone so that when I say that Foo is Singleton it is
universally clear what Foo is. In other words, design patterns make it
possible to communicate ideas clearly as long as they have a clear and
universal definition.
So maybe we should call this design pattern something else. However
looks like there's not a clear definition of MVP available anyway, as
for example in Dolphin Smalltalk it means something different to
ASP.NET.
Now back to passing the Presenter to the View, what methods of the
presenter should be exposed to the view? Should the view still be
ignorant about the model? or should we expose
PresenterImpl.getContacts(): ArrayList<Contact> to the view as well?