[ZODB-Dev] Implementing Storage Decorators

Jim Fulton jim at zope.com
Sat May 5 02:31:46 EDT 2007


On May 4, 2007, at 3:52 PM, Tino Wildenhain wrote:

> Dieter Maurer schrieb:
>> Jim Fulton wrote at 2007-5-4 14:40 -0400:
>>> On May 4, 2007, at 2:33 PM, Dieter Maurer wrote:
>>>
>>>> Jim Fulton wrote at 2007-5-2 11:52 -0400:
>>>>> ...
>>>>> I think I still rather like explicit, but I'm on the fence about
>>>>> which approach is best.  What do other people think?
>>>>> From your description, I would use a subclassing (and forget about
>>>> proxy and copying).
>>> That would be a nightmare, on multiple levels:
>>>
>>> - All of the separate implementations would become tightly  
>>> coupled,  which is what happens with inheritance.
>>>
>>> - Either someone would have to create classes for the various   
>>> permutations of features, or consumers would have to mix and  
>>> match  multiple classes to get what they want and sort out the  
>>> variate  internal implementation incompatibilities.
>> Your decorators would become mixin classes
>> and the final classes would list the features they like -- simpler
>> than ZCML binding together...
>> Of course, some features may not play well with one another.
>> But, that will make problems also with proxies or copying...
>
> Even this could be sorted out with special cleanup or
> secure mixins which can do dirty tricks like accessing
> self.__class__.__bases__ to fixup ;) (Much like combining
> the copy with the subclass approach)

Uh huh.

> I'm for mixin with strong guidelines on implementation
> (e.g. how to call private attributes to not pollute the
>  namespace)

Forget it. Inheritance is not an option.

Jim

--
Jim Fulton			mailto:jim at zope.com		Python Powered!
CTO 				(540) 361-1714			http://www.python.org
Zope Corporation	http://www.zope.com		http://www.zope.org





More information about the ZODB-Dev mailing list