22

Last Friday a coworker asked me what a Singleton is.

He graduated 3 years ago.

I think we have to improve our hiring process.

Comments
  • 6
    Response: "A heavy metal band. Have you ever been on one of their concerts? They are amazing!"
  • 13
    Be glad he asks, instead of guessing and fucking up the complete process.
  • 2
    @Humanoid- you dont know the situation, I assumed he got told to make something in a singleton pattern and then asked what it was.

    If he did see it somewhere else I would have told him to look it up even though explaining it right away is way quicker.
  • 0
    @Humanoid- @Codex404 I told him that one of the classes is a Singleton, so he could store some value in a class property and it will be accessible in all other classes that this service is injected
  • 7
    What's wrong with that? Singleton's aren't nearly as used a pattern as they were, say 10 years ago. Many people would go as far as to consider them a code smell. It's not a given that he'd know what one is.

    I wish I had people working under me who asked questions like this, rather than just assuming they can guess at the answer and plough ahead with implementing bollocks.
  • 0
    @Humanoid- if it comes up during conversation I prefer you ask me right away, otherwise everything of the conversation after that is half clear and within 30 seconds it can be explained in a matter you need to understand what I am saying.
  • 2
    Be glad he asked. And not knowing what a Singelton is... Is actually a good thing!
  • 0
    This is still far better than what one of my director asked.
    What is the difference between a portal & cloud.
  • 2
    @tokenguy your explanation is wrong.

    very. very. very. wrong.

    So what is a singleton?
  • 0
    @IntrusionCM In fairness, while I generally go for "A class that can only ever be instantiated once", the *accepted definition* can vary somewhat between languages.
  • 0
    @AlmondSauce Singleton is one of the most basic design patterns....

    And language support shouldn't be a problem.

    The description you gave is not complete nor totally wrong.

    "Store some value in a class property and it will be accessible in all other classes that this service is injected"

    And that is completely wrong.

    A singleton can only be created once - yes, but - and that's the reason why singleton's are considered an anti pattern - the instance can be accessed globally.

    Usually a singleton is self creating.

    A service, especially when injecting in DI sense, shouldn't be a singleton.

    Very unsure what the author meant, could be from value object to static variable, but a singleton makes no sense...

    (In case a service is created that has an property that is an singleton and is passed around... Ouch. That's fuckity. Really.)
  • 0
    @IntrusionCM The description I gave isn't wrong at all (excluding some weird classless singleton type hacks), and is about as complete as you can get in a general sense.

    Language *support* generally isn't an issue (though it's definitely harder in some languages than others), but whether a singleton is self-creating, is a service, is a driver wrapper, is instantiated eagerly or lazily, or heck, is even based off a class at all, can vary between languages & implementations.

    Your assertion that it can be always accessed globally is also not correct - I've seen plenty of package level singletons.
Add Comment