mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-09-27 14:59:11 +02:00
23 lines
806 B
Markdown
23 lines
806 B
Markdown
# Null Object
|
|
|
|
## Purpose
|
|
|
|
NullObject is not a GoF design pattern but a schema which appears frequently enough to be considered a pattern. It has the following benefits:
|
|
|
|
* Client code is simplified
|
|
* Reduces the chance of null pointer exceptions
|
|
* Fewer conditionals require less test cases
|
|
|
|
Methods that return an object or null should instead return an object or `NullObject`. `NullObject`s simplify boilerplate code such as `if (!is_null($obj)) { $obj->callSomething(); }` to just `$obj->callSomething();` by eliminating the conditional check in client code.
|
|
|
|
## Examples
|
|
|
|
* Symfony2: null logger of profiler
|
|
* Symfony2: null output in Symfony/Console
|
|
* null handler in a Chain of Responsibilities pattern
|
|
* null command in a Command pattern
|
|
|
|
## UML Diagram
|
|
|
|

|