- 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