Hi Folks,

A number of you have already chimed in on this issue (thanks!) and
have, in general, expressed two ideas: that making things more modular
is Good, and that having a single-point-of-entry into Jess is also
Good. Several people have also reminded me of the Law of Demeter and
thereby suggested that exposing the nascent Agenda class might not be
a good idea.

I think the problem that is bothering me is that the Rete class is
indeed a sort of Facade for Jess, but it also contains functional
code.  It therefore has multiple roles, and that's the bad thing. The
name suggests that it is one component of Jess - the pattern-matcher -
but it is also the view of all of Jess.

In talking about breaking the Rete class into its constituent pieces,
I forgot to consider the Facade functionality as one of the important
segments. 

So one proposal would be to make the Rete class into just the pattern
matcher, and introduce a brand-new facade class whose sole job was to
assembling a working expert-system shell out of pieces and allow you
to manipulate it. You could use this class, or you could go behind the
scenes if you wanted to.

Main could be that class, I suppose, since that's mostly what it does
already. I could redesign it so that you create a jess.Main object and
call run() on that. But Main is a lousy name for the class. And Jess
is an awkward name since that'sthe package name already.

A contest: name the Facade class?

---------------------------------------------------------
Ernest Friedman-Hill  
Distributed Systems Research        Phone: (925) 294-2154
Sandia National Labs                FAX:   (925) 294-2234
Org. 8920, MS 9012                  [EMAIL PROTECTED]
PO Box 969                  http://herzberg.ca.sandia.gov
Livermore, CA 94550
---------------------------------------------------------------------
To unsubscribe, send the words 'unsubscribe jess-users [EMAIL PROTECTED]'
in the BODY of a message to [EMAIL PROTECTED], NOT to the
list (use your own address!) List problems? Notify [EMAIL PROTECTED]
---------------------------------------------------------------------

Reply via email to