[Zope-dev] ZPatterns: DropZone example

Steve Alexander steve@cat-box.net
Wed, 28 Jun 2000 17:26:12 +0100


Hi folks,

I've been looking at the DropZone example Phillip Eby provided on the
ZPatterns Wiki.

  http://www.zope.org/Members/pje/Wikis/ZPatterns/DropZoneExample

I've decided to start implementing it, so as to give myself an
educational experience in using ZPatterns.

I have an open question:

The suggested specialists in the Accounting framework are:

  Invoices
  Orders
  Customers
  Products

What I'm finding is that these are just the White-box specialists. A
clean design would seem to want all the specialists above, plus at least
one Black-box specialist to do the "heavy lifting. Let's call it the
"AccountingProcessor" specialist.

Now, if I had a third-party accounts package (something by Sage
perhaps), I could make the AccountingProcessor specialist expose various
functions to the four other White-box specialists. It would implement
these by making equivalent calls on the underlying accounting package.

I could also swap the heavy-lifting portion of my framework by swapping
the black-box AccountingProcessor specialist for one that talks to some
software by Quicken, or perhaps some software that is written in Python
as a conventional Zope product.


The same goes for the Resource Scheduling framework. We have some
White-box specialists, ripe for customisation:

  Resources
  Reservations
  ResourceUsers

And then for the heavy-lifting we have the black-box ResourceScheduler
specialist. Again, this might be a Zope Python Product, or it might be
an interface to some application written on top of Microsoft Exchange.


Are specialists intended to be placed inside other specialists, as
"contents"? So in this case, would the white-box specialists live inside
the black-box specialist -- so they become the customisable aspects of
the overall framework? Or would both black-box and white-box specialists
live inside an uber-specialist?

Or is this just down to taste?

--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net