From: Ben Nagy Date: 2006-07-29T02:55:59+09:00 Subject: Re: Howto ? :: Person is a customer > -----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