
From the book "Refactoring"
As an alternative, I usually find that the "Introduce Null Object" refactoring results in simpler and more readable code overall. Perhaps not as concise
Sometimes you can simplify a conditional expression such as this: class Foo { void foo() { ... } }; ... x = 0; ... if(x == 0) handleNullCondition(); //conditional expression else x->foo(); with something like this: class Foo { void foo() { ... } }; class NullFoo { void foo() { handleNullCondition(); } }; ... x = new NullFoo(); //instead of x = 0 ... x->foo(); //conditional expression goes away //polymorphism handles it instead So if I only have one check for class Foo being null, the code becomes bigger (I create a new class). But if I had many checks all over the place, it actually simplifies the code (a lot of if statements go away). ----- Original Message ----- From: Andrew R. Thomas-Cramer To: Boost-Users@yahoogroups.com Sent: Tuesday, May 14, 2002 7:11 AM Subject: Re: [Boost-Users] boost::shared_ptr and NULL ----- Original Message ----- From: "Sean Shubin" <sshubin@socal.rr.com> To: <Boost-Users@yahoogroups.com> Sent: Tuesday, May 14, 2002 3:25 AM Subject: Re: [Boost-Users] boost::shared_ptr and NULL though. I'm not familiar with that term. Could you define it and provide an example? Yahoo! Groups Sponsor ADVERTISEMENT Info: <http://www.boost.org> Wiki: <http://www.crystalclearsoftware.com/cgi-bin/boost_wiki/wiki.pl> Unsubscribe: <mailto:boost-users-unsubscribe@yahoogroups.com> Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service. [Non-text portions of this message have been removed]