Howto ? :: Person is a customer

S

Squeak Smalltalk

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.

How will you do it ?

Best Regards
W.
 
J

Jake McArthur

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.

How will you do it ?

Best Regards
W.

How about making Person#to_employee and Person#to_customer methods?
That would be very Ruby-like, would it not?

However, I think I would just find a way to wait until I know before
instantiating it, then passing all necessary data into the
appropriate .new method when I do.

- Jake McArthur
 
J

James Britt

Squeak said:
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'?

(Check out the list archives for threads on duck typing and static
typing to see how the notion of 'type' has been discussed. Might give
you some ideas.)

--
James Britt

"I was born not knowing and have had only a little
time to change that here and there."
- Richard P. Feynman
 
B

Ben Nagy

-----Original Message-----
From: James Britt [mailto:[email protected]]
Sent: Friday, July 28, 2006 2:22 PM
To: ruby-talk ML
Subject: Re: Howto ? :: Person is a customer

Squeak said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,209
Messages
2,571,088
Members
47,684
Latest member
sparada

Latest Threads

Top