[
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.