[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