Re: [WebIDL] add text to discourage `[Optional] Interface / [NoInterfaceObject] interface Interface` and encourage `dictionary Dictionary` instead

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