[Zope-dev] improving the utility and adapter lookup APIs

Martijn Faassen faassen at startifact.com
Fri Nov 27 05:59:04 EST 2009


Hanno Schlichting wrote:
> On Wed, Nov 25, 2009 at 9:52 PM, Tres Seaver <tseaver at palladion.com> wrote:
>> Hmm, I may be missing something here, but if Foo implements IFoo, then
>> the getAdapter lookup for it will short circuit, leading you into
>> infinite recursion.  Except that it doesn't:
> 
> [snip example]
> 
>> which strikes me as wildly disjoint:  the IFoo behavior is "expected"
>> (short-circuit the lookup if the object already provides the interface),
>> while the getAdapter behavior is a puzzlement.
> 
> This has been mentioned numerous times as one of those odd and
> unexpected differences between the IFoo vs. get/queryAdapter semantic.
> IIRC the only use-case I ever heard of for the getAdapter semantic,
> was the possibility to override the behavior promised by the interface
> with a different adapter without touching the class that implements
> the interface directly.
> 
> I think changing this falls into the category of: Small backwards
> incompatibly that seem worthwhile to make the behavior consistent and
> expected.

I think if we deprecate the getAdapter API entirely by making it 
unnecessary, we'd not need to change it either.

Regards,

Martijn



More information about the Zope-Dev mailing list