null pointers vs. Null Object Pattern
        Posted  
        
            by 
                GlenH7
            
        on Programmers
        
        See other posts from Programmers
        
            or by GlenH7
        
        
        
        Published on 2012-06-08T18:10:39Z
        Indexed on 
            2012/06/08
            22:47 UTC
        
        
        Read the original article
        Hit count: 501
        
error-handling
|null
Attribution: This grew out of a related P.SE question
My background is in C / C++, but I have worked a fair amount in Java and am currently coding C#. Because of my C background, checking passed and returned pointers is second-hand, but I acknowledge it biases my point of view.
I recently saw mention of the Null Object Pattern where the idea is than an object is always returned. Normal case returns the expected, populated object and the error case returns empty object instead of a null pointer. The premise being that the calling function will always have some sort of object to access and therefore avoid null access memory violations.
- So what are the pros / cons of a null check versus using the Null Object Pattern?
I can see cleaner calling code with the NOP, but I can also see where it would create hidden failures that don't otherwise get raised. I would rather have my application fail hard (aka an exception) while I'm developing it than have a silent mistake escape into the wild.
- Can't the Null Object Pattern have similar problems as not performing a null check?
Many of the objects I have worked with hold objects or containers of their own. It seems like I would have to have a special case to guarantee all of the main object's containers had empty objects of their own. Seems like this could get ugly with multiple layers of nesting.
© Programmers or respective owner