Basically just a single registry of all properties and top-level
objects in the application.  So any object can request a handle to the
registry and recall any object or property it needs.  In particular,
it doesn't provide any sort of assistance to implementing the business
logic beyond providing a simple way to access whatever object(s) you
need for a given operation.

There are a few main benefits:
1) my entire app's layout (though not it's function) is laid out in a
single XML file
2) I can extend any given class and immediately update the entire app
by changing that one XML file
3) the init/configure method pair from Mach-II makes initialization of
all the CFCs a lot cleaner (a single abstract class implements init to
do the initialization and provides a no-op configure that CFCs can
override as needed).  No need to ever pass anything into a CFC as
initialization arguments, because it can always get everything it
needs from the registry (which is passed to the abstract init method).

I should mention that I generate a significant amount of code
programatically, so this type of abstracted architecture works very
well for me.  If you're familiar with FarCry and it's concept of types
(a CFC with properties, that gets installed into the database and
such), I've taken it a step further.  FarCry uses a generalized set of
DB access components (the FourQ API), which I didn't really like.  I
have something similar to FarCry's types, which are used to generate
the DB tables, but I take it the next step and build custom DB
components for each entity as well, so my data access layer is custom
tailored to the specific types I'm using.  Each of those different
objects is then subclassed for any custom behaviour that might be
needed and can't be generated automatically.

cheers,
barneyb

On Wed, 16 Mar 2005 11:15:04 -0800, Paul Kenney <[EMAIL PROTECTED]> wrote:
> Out of curiosity, what is the objective your code aims for?
> 
> 
> On Wed, 16 Mar 2005 09:48:12 -0800, Barney Boisvert <[EMAIL PROTECTED]> wrote:
> > Take a look at the Tartan framework.  It looks really confusing
> > initially, but it takes care of inter-object relationship problems
> > with a remarkable degree of simplicity once you get your head around
> > it.
> >
> > I've also had great success with taking the configuration management
> > objects (AppLoader, AppManager, ListenerManager, PropertyManager,
> > etc.) from Mach-II, tweaking them to handle different object types
> > (services, daos, etc. rather than listeners, filters, events, etc.).
> > It's simpler than Tartan, and targetting a different objective, but
> > its quite effective if you already have a functioning object model and
> > just need an abstract way to wire it together.  Tartan, just for
> > comparison, is a framework for implementing the business logic as well
> > as managing the various objects.
> >
> > cheers,
> > barneyb

-- 
Barney Boisvert
[EMAIL PROTECTED]
360.319.6145
http://www.barneyb.com/

Got Gmail? I have 50 invites.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Find out how CFTicket can increase your company's customer support 
efficiency by 100%
http://www.houseoffusion.com/banners/view.cfm?bannerid=49

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:198999
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to