The Null Object pattern is one of my favourite ways to DRY up code and reduce duplication.
I wrote the [System User module][0] for a client project a number of years ago, which also included the [Null User module][1].
If no system user is found, it returns a null (empty) user instead that returns null or empty values by default.
Today, [I posted][2] [and tooted][3] a screenshot of some code from a side project I'm working on, which I realised would be another good time to use the Null User module.
In the code, I search for a user with a given licence key.
If a user is found, it is returned.
If not, instead of returning FALSE or NULL, I return a null user object that I can treat the same as a real user.
Now, when I create the node and assign an owner, I can just use `$account->id()` and it will always work if a user was found or not.
This makes the code cleaner, simpler and easier to test and maintain.