I've been toying with this idea, and I'm 
having some difficulty implementing it 
as well as I'd like.

Seeking the input of others.

I'd like to be able to separate my app's
"guts" from its UI to a large extent, so
that I could allow different UIs (such
as Fox and "plain old text").

So the app looks basically like this:

  session.get_some_parameters
  session.do_stuff
  session.wrap_up

Those aren't the real names, but you get
the idea.

Very natural in terms of old-fashioned
gets and puts calls.

And of course, there is a little more 
complexity behind the general flow of 
control.

So I thought, OK, my code just calls a
bunch of methods... the UI details are
hidden.

But, of course, a GUI has that inside-out
logic flow.

So I can't figure out how properly to 
divide the code up -- I can certainly
throw up a dialog for get_some_parameters.

But I can't "fall through" to the do_stuff
call. When I press the Start button or
whatever, the mainloop has to be running.
So I end up calling do_stuff from *within*
get_some_parameters... which means I can't
call it *after* the do_stuff call.

I suppose I could just make a "run" method
for each class/UI... that seems best right
now. But then what have I really bought for
myself?

What are others' opinions on this matter?

Hal

--
Hal Fulton
hal9000 / hypermetrics.com