- From: Allen Wirfs-Brock <allen@wirfs-brock.com>
- Date: Tue, 30 Aug 2011 08:50:37 -0700
- To: timeless <timeless@gmail.com>
- Cc: public-script-coord@w3.org
Received on Tuesday, 30 August 2011 15:51:12 UTC
On Aug 29, 2011, at 10:06 AM, timeless wrote:
> I recently saw a snippet of Web IDL code that goes like this:
> function A(Foo foo, [Optional] Bar bar);
>
> [NoInterfaceObject] interface Bar
> { ... };
>
> In response to this, I'd like Web IDL to include some text to the effect of:
>
> You SHOULD use `dictionary Foo` instead of `[NoInterfaceObject]
> interface Foo` if Foo is intended for use as an argument, especially
> an [Optional] argument.
>
That sounds like it would discourage patterns like this:
[NoInterfaceObject]
interface SomeOpaqueType {};
interface SomeResourceManager {
SomeOpaqueType getSomeResource(...);
void operateUsingResource(in SomeOpaqueType);
}
I don't see why you would want to discourage this as it is a well understood design pattern. For example see, http://web.cecs.pdx.edu/~antoy/flp/patterns/#Opaque%20Type
Using dictionary to pass optional arguments is a complete different use case.
Allen
Received on Tuesday, 30 August 2011 15:51:12 UTC