On Mon, Apr 02, 2007 at 22:15:08 +0100, Andy Armstrong wrote:

> Instead I'd like to be able to write:
> 
>     my $form        = WebForm::new;
>     my $wide_form   = $form->variant( { width => 30 } );
>     my $narrow_form = $form->variant( { width => 10 } );
> 
>     $wide_form->input('name', 'Enter you name');
>     $narrow_form->input('age', 'Enter your age');
> 
> There's still only one WebForm object: $wide_form and $narrow_form are
> proxies for $form that modify its behaviour. It's a bit like currying
> but for objects rather than functions.

That's pretty much vanilla prototype OO (know any js?).

See Class::Classless, Class::Prototyped and friends.

> In some ways it's similar to MVC with $wide_form and $narrow_form being
> two views attached to the $form controller. The difference is that the
> two views actually inherit their behavior from the controller and can be
> used interchangeably with it.

Eh, how?

-- 
  Yuval Kogman <[EMAIL PROTECTED]>
http://nothingmuch.woobling.org  0xEBD27418

Attachment: pgpYVx1iOg9y8.pgp
Description: PGP signature

Reply via email to