Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: Object singleton method

by brian_d_foy (Abbot)
on Apr 22, 2008 at 05:35 UTC ( #682087=note: print w/ replies, xml ) Need Help??


in reply to Object singleton method

See my article "Design Patterns: Singletons" in The Perl Review 0.1 (PDF).

Good luck, :)

--
brian d foy <brian@stonehenge.com>
Subscribe to The Perl Review


Comment on Re: Object singleton method
Re^2: Object singleton method
by sh1tn (Priest) on Apr 22, 2008 at 07:42 UTC
    Thank you, nice article. All the examples for singleton point to class methods and not instance ones. I wanted something like:
    my $obj1 = Class->new; my $obj2 = Class->new; # definition of singleton method for $obj1 goes here ... $obj1->singleton_method and print "It works.\n"; $obj2->singleton_method and print "It doesn't work.\n";


      I'm not sure what the benefit is of having objects that have the same class but have not all methods. Most likely, you could achieve what you want by overriding ->can and having the method fail for objects that are not the singleton object.

      Otherwise, you might want to look at classless objects:

      Oh, you're not looking for singleton objects. You're looking for objects of the same class to have the same method names but do different things based on the object. Singletons aren't about the method names but how many objects there actually are.

      You have a bit of an XY Problem here since we don't know what you are trying to solve. What are you trying to accomplish (rather than how you are trying to do it)?

      If you want the objects to start off as the same class and specialize later, look at Class::Prototyped. Each object can start the same, but then gain or replace methods (called "slots" in prototype programming). Randal's CGI::Prototype stufff is based on this and once you get used to the idea it's very nice to work with given an appropriate problem.

      Good luck, :)

      --
      brian d foy <brian@stonehenge.com>
      Subscribe to The Perl Review
        In Ruby's version of prototype based programming, slots are called singleton methods - this is perhaps what the OP was referring to.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://682087]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (8)
As of 2014-10-23 10:38 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (125 votes), past polls