SVN: Sandbox/zc/extrinsicreference/extrinsicreference.txt Expanded motivation.
Jim Fulton <[email protected]> Sat, 12 Nov 2005 11:32:41 -0500 (EST)
| Newsgroups | gmane.comp.web.zope.public-cvs |
|---|---|
| Message-ID | <[email protected]> |
Log message for revision 40061: Expanded motivation. Changed: U Sandbox/zc/extrinsicreference/extrinsicreference.txt -=- Modified: Sandbox/zc/extrinsicreference/extrinsicreference.txt =================================================================== --- Sandbox/zc/extrinsicreference/extrinsicreference.txt 2005-11-12 16:30:47 UTC (rev 40060) +++ Sandbox/zc/extrinsicreference/extrinsicreference.txt 2005-11-12 16:32:40 UTC (rev 40061) @@ -8,10 +8,27 @@ reference to it's first chapter would be intrinsic. Intrinsic references are used to satisfy an objects "concerns", the things that motivated it's design. Extrinsic references exist to meet system -concerns. We prefer using simple Python references to implement +concerns. For examples, a system might use extrinsic references to +keep track of link dependencies (e.g. backlinks). +We prefer using simple Python references to implement intrinsic references. This package provides a tool that can be used to provide extrinsic references. +We originally developed this package to manage "shortcuts". Shortcuts +are a bit like windows shortcuts or unix symbolic links. Shortcuts +hold direct references to their targets. These were intrinsis to +shortcuts. It wouldn't make sense to have shortcuts without targets. +We also wanted to keep track of shortcuts to to objects. That is, +given an object, we wanted to find all of the shortcuts to it. This +was a system/application choice. We used extrinsic references for +this. + +The above example illustrates that it is often useful to use different +kinds of references for different directions of an association. We +often use intrinsic references for one direction and use extrinsic +references to go the other way. Of course two-way +associations/relationships could be build on a mechanism like this. + Extrinsic registries record a key and one or more values to which they refer. The key and all values must be adaptable to zope.app.keyreference.interfaces.IKeyReference. _______________________________________________ Zope-CVS maillist - [email protected] http://mail.zope.org/mailman/listinfo/zope-cvs Zope CVS instructions: http://dev.zope.org/CVS