Martin Fowler wrote a book called "Refactoring:
Improving the Design of Existing Code," and in the book he discusses the "Introduce
Null Object" refactoring. Instead of assigning a null value to a
reference-type property, a nullable object can be used to represent a null
value, instead of directly assigning a null value itself. This makes it easier
to reference and you do not have to worry about getting a null exception when
using the property. Here is how it works.