Ben Nagy
7/28/2006 5:56:00 PM
> -----Original Message-----
> From: James Britt [mailto:james.britt@gmail.com]
> Sent: Friday, July 28, 2006 2:22 PM
> To: ruby-talk ML
> Subject: Re: Howto ? :: Person is a customer
>
> Squeak Smalltalk wrote:
> > Hi,
> >
> > Beginner question probably but I do not know how to do it correctly.
> >
> > I will read informations from a file and create an object.
> > During my load I do not know if it is a employe or a customer so I
> > create a person object.
> > After the object is created I will know which type it is.
> >
> > After I know I want to change the type of my object.
>
> "Type"? What exactly do you mean by 'type'?
If you mean class, you can do this (untested in irb)
class Person
def self.new( param, data )
if param==1
Employee.new(data)
else
Customer.new(data)
end
end
end
Now Person.new(param, data) will return an Employee or a Customer depending
on the param it is passed. Adjust as needed in terms of inspecting the
input.
I consider this needless trickery, but have used it before because it amuses
me. The other responses have more actual software engineering merit.
Cheers,
ben