[Cuis-dev] MVC et al
Hilaire Fernandes
hfern at free.fr
Fri Aug 4 12:18:28 PDT 2023
Hi folks,
Cuis does not come with the legacy MVC framework. From what I read even
the Smalltalk coming with MVC offers a revisited version, ok may be not
the Squeak one. Nevertheless it does not really matter if you want to
develop a GUI application with Cuis because all you need is to use the
observer pattern and view enriched with control, both present in Cuis.
Indeed, this pattern has seen since then alternate design. For DrGeo, I
pick up a different pattern, MVP, back in 2005. According to its
promoters, MVP fixes MVC flaws, you can read further about that on
related articles below.
In a few word, with MVP, the model informs its views using the observer
pattern, so the model does not know about its view, as in MVC. The views
also handle the low level controls, then informs the Presenter to take
action at the model level. This part is different than MVC and offer
more flexibility.
In DrGeo there are a lot of different Models: domain of the application,
the math items, the smalltlak sketch, the script, the macro, etc. Most
of them with dedicated Views of different nature to display, design, etc
the models. Then a bunch of Presenters, with different level of
complexity : domain application presenter, tools to manage the user
interaction on the canvas and builder to manage the process of
constructing a math item.
All in all, I don't see any reason Cuis can not be used to design a
complex GUI application. I have reworked the DrGeo code and class
categories to make it easier to understand the different levels of
responsibility in the application. In repo but not released in app yet
though.
Dolpin Smalltalk article about MVP,
<https://drive.google.com/file/d/1jWC7yLw8Q6sZeoq__m7K27vyOT8Dn55I/view?usp=sharing>
Article from the original designers of MVP
<http://www.wildcrest.com/Potel/Portfolio/mvp.pdf>
Wikipedia:
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter
Hilaire
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20230804/0e7f950b/attachment.htm>
More information about the Cuis-dev
mailing list