mirror of
https://github.com/DesignPatternsPHP/DesignPatternsPHP.git
synced 2025-10-01 08:46:55 +02:00
README NullObject
This commit is contained in:
20
NullObject/README.md
Normal file
20
NullObject/README.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# Null Object
|
||||
|
||||
## Purpose
|
||||
|
||||
NullOutput is a example of NullObject pattern. It is not formally a Design Pattern by the GoF but it's a schema which appears frequently enough to
|
||||
be a pattern. Furthermore it is a really good pattern in my opinion:
|
||||
|
||||
* the code in the client is simple
|
||||
* it reduces the chance of null pointer exception
|
||||
* less "if" => less test cases
|
||||
|
||||
Every time you have a method which returns an object or null, you should return an object or a `NullObject`. With NullObject, you don't need
|
||||
a statement like `if (!is_null($obj)) { $obj->callSomething(); }` anymore.
|
||||
|
||||
## 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
|
Reference in New Issue
Block a user