4 ms·
The author's idea of moving events into the name suggests a poor understanding of OOP in general (with messages/events being the basis of object oriented approa
by Nekorosu 13y ago
The author's idea of moving events into the name suggests a poor understanding of OOP in general (with messages/events being the basis of object oriented approach). Ok, maybe he is talking about some special implementation of events but there are a lot of GUI oriented MVC interpretations which use some special events/signals implementation without trying to put it in the name of the pattern/framework because events are a common part of GUI domain then it suggest a lack of experience.
Without the E in the MOVE we have just MOV.
Let's talk about Operations now. There are several MVC frameworks which use different names for the classes related to controllers (for example Commands). Some implementations let you compose them. They usually live inside controllers _package_. Do the authors of those implementations rename the C into somethings else? No!
There are some cases with different names (think MVP, MVVM) but they have a different form of relationship between the three parts of a pattern. Let's look at the MOVE's diagram. We actually have the original MVC diagram with a strange quirk: the controller (made from Operations) can directly affect the view. Now we have a problem. There are two places in this architecture where the view gets updated: the view can get events from the model and update itself (oh horror! it's active view!) or it can be directly updated by the Operation.
This doesn't solve anything but makes programs built with this architecture harder to reason about and debug.
There are two ways to fix it:
1. remove direct changes on view from controller then we have just MVC
2. stop sending events from model to view and send them to controller then we have MVP
In the end I don't see enough justification for calling it something new and using a special name for this particular pattern. Also this pattern is broken. Talking about the article itself, it's neither academic, nor pragmatic and looks like a blatant attempt at self promotion. It's a bullshit which puts words over meaning and misleads beginning programmers.