[Zope-dev] ZCA proposal
Shane Hathaway
shane at hathawaymix.org
Thu Dec 3 05:27:17 EST 2009
Martin Aspeli wrote:
> Gary Poster wrote:
>> I think I could get fully behind the following proposal that others have made (Shane I think was one of several?).
>>
>> IFoo.adapt(...)
>>
>> IFoo.utility(...)
>
> Thinking about it a bit, it strikes me that IFoo.adapt(context) may not
> be right. This reads "IFoo adapt context", which doesn't make sense.
> What I really want to hear is "context adapted to IFoo". So maybe it's
>
> IFoo.adapting(context)?
> IFoo.adapterFor(context)?
> IFoo.adapter(context)?
>
> Just thinking out loud.
To me, "myobj.get(x)" reads as "myobj, please get x and give me the
result", so "IFoo.adapt(y)" reads as "IFoo, please adapt y and give me
the result". That statement makes perfect sense to me.
> Thinking out loud further, I think I may actually prefer IFoo.instance()
> instead of .utility(), but maybe that debate is already passed.
> .utility() is OK too.
To me, generic names like "instance" and "singleton" suggest we're
trying to solve some grand problem that would make our brains hurt. I
find it more satisfying to solve a more specific problem.
I am participating in this thread because I believe the current
zope.component API is unnecessarily verbose, hindering readability and
adoption by Python projects that would benefit. I think adding adapt()
and utility() to zope.interface.Interface might improve the situation.
We could instead add adapt() and utility() functions to the
zope.component package, but I haven't seen any function signature that
would turn out as simple as "IFoo.adapt(x)".
Shane
More information about the Zope-Dev
mailing list