Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [platform-swt-dev] From Swing to SWT

Ok... back to the drawing board...

Separation of concerns is a sermon to the choir, Scott.  I'm a NeXT
head.  I've been doing MVC since before people called it a "Pattern".

What I'm saying does not betray it, it's that the theoretical V in MVC
is not always truly reusable outside of a specific user context.

More accurately, I look at MVC at many levels of detail, but many GUI
systems (Struts+JSP for example) see the V as the whole page.  In a
fully articulated, and usable system, you end up with some objects being
V in one relationship, and M in others, and the relationships are more
fine-grained.

Your description of how to start visualizing a UI is fine, and nicely
fits with modern MVC theory, but the fact is that a UI is a way for "an
audience" to "interact" with "something".  Therefore, often if you think
of the V as the whole screen or window, then it's not reusable.

That's entirely OK, but what it means is that some aggregate Views,
specifically the ones which follow course-grain use-cases actually
define much of the business logic, because not all applications need a
rules-engine behind the scene parsing logical paths of views between
auto-generated views derived from rules and data.

Sometimes, you want a button here which takes you to the next page.
What you're describing I find to be typically a smallish portion of what
most applications require.  Most don't require a full separation of
concerns at the level of the textbooks.  Often that makes the whole app
harder to deal with over its lifetime.

What you're talking about is an auto-UI-generation system, and many apps
can use that, but often they don't need to.  Most often, in fact.
There's a point of diminishing returns, and I've experimented with a
variety of configurations.   

Regards,
Christian.

P.S.  MVC is not a UI paradigm (sorry about that word).  It's a
partitioning of roles in the code, with the advantages of plugability,
manageability, and (often) reusability. It is well-used in a UI, but
that's a very limited area of application.  -cg.




Back to the top