in reply to Re: Re (tilly) 2: Paradigm Shift - Dual Use Constructors
in thread Paradigm Shift - Don't use strict
When I call GA::Entity->new() it returns a randomly generated solution. When I call $ga_entity->new() it produces a randomly mutated version of $ga_entity, and when I call $ga_entity->new($other_ga_entity) it returns a cross of the two. I thought long and hard if I wanted this type of behaviour and experimented with a number of alternatives before deciding I was happy with this approach. But of course merlyn would mark me down bigtime without considering why I had done it, and what my reasons were.
I fail to see how someone would mark you down on this, because you wouldn't have the traditional my $class = ref($proto) || $proto, you would have something much more complex wrapped around:
Which would look far more reasonable in a code review, and would almost inevitably have to be documented. So I don't buy your argument.if (ref($proto)) { if (ref($_[0])) { cross polinate } else { mutate } } else { construct new }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re (tilly) 2: Paradigm Shift - Dual Use Constructors
by demerphq (Chancellor) on Feb 20, 2002 at 09:59 UTC |
In Section
Meditations