[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