I recommend being wary of any broad generalizations about programming patterns :P
Rick On Thu, Nov 21, 2013 at 7:13 AM, Gregg Caines <cai...@gmail.com> wrote: > The singleton pattern is actually unnecessary in most languages outside of > java, including javascript. You should be wary of any javascript book that > tries to teach you singletons at all. Many of those gang of four patterns > simply don't translate outside of java and c++ (eg if you want to implement > command, strategy, or factory patterns, you should really first check out > javascript's first class functions.). > > So how do you achieve the same effect in javascript? In the browser, you > have globals. If you want just one instance of a thing, create it, and set > it to a global variable. You can use that global variable everywhere. (If > you're thinking "but global variables are bad!", I mostly agree. This is > one of the reasons that the singleton itself is actually considered an > anti-pattern by many. > > In node, the module system is a global namespace that can maintain state, > so that's the appropriate way to achieve the same effect. I do this in > node applications all the time. For example, if I have a module for > emailing with a send() method on it, I don't have it export a constructor; > I have it export an object. That object might maintain some state or it > might not. When the module is subsequently require()'d, it will have any > state that it has accumulated since. > > All of this is a bit hairy because we're talking about global state (which > is the main impetus for singletons, when you get right down to it). > Whatever you decide to do though, keep in mind that writing idiomatic code > in any language means using the features of that language, and not > translating java/C++ idioms into it. It will be an extremely rare > javascripter that will want to work on your code if you've got singletons > in it. > > G > > > > > On Monday, November 18, 2013 3:38:09 PM UTC-8, Reza Razavipour wrote: >> >> A newbie question... >> >> I have an app that connects and reuses the same connection to a remote >> database and a connection to a remote soap server. >> I want to implement a singleton pattern for each of these. I am used to >> doing that in C++ and Java but want to know what the standard >> implementation for a Singleton pattern is in node.js. >> >> Any recommendations or references. >> >> >> -- > -- > Job Board: http://jobs.nodejs.org/ > Posting guidelines: > https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines > You received this message because you are subscribed to the Google > Groups "nodejs" group. > To post to this group, send email to nodejs@googlegroups.com > To unsubscribe from this group, send email to > nodejs+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/nodejs?hl=en?hl=en > > --- > You received this message because you are subscribed to the Google Groups > "nodejs" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to nodejs+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.