[Grok-dev] Re: Making an interface the default module context
Philipp von Weitershausen
philipp at weitershausen.de
Tue Aug 5 10:17:40 EDT 2008
Martijn Faassen wrote:
> Philipp von Weitershausen wrote:
> [snip]
>>> This would introduce auto-association with interfaces. I think that's
>>> a reasonably safe behavior if we require that IContext is extended,
>>> and is more or less analogous to what happens with classes as far as
>>> I can see.
>>
>> Yeah. Well, if somebody's willing to extend grokcore.component as
>> described here, I won't say no :).
>
> One thing I worry about is as this is an instance, it might
> auto-associate even with an imported interface. We need to make sure
> that this isn't the case.
Indeed. martian's scan_for_classes wisely uses the defined_locally check
for that. If it were extended to scan for interfaces as well, that check
would have to be applied to them as well.
All that said, in my experience apps quickly outgrow the restrictions
that are required for using this automatic mapping of views and other
adapters to implicit contexts.
While it's great to have automatic mapping when you start out and just
write a bunch of classes in one module, I find that when introduce
interfaces, you tend to have so many components anyways that it's wise
to split up the code over multiple modules. At that point you should
also have understood what grok.context() does and why it's necessary.
More information about the Grok-dev
mailing list