Upload
thehoagie
View
683
Download
0
Embed Size (px)
Citation preview
Null Object PatternSimplicity in doing nothing
What is a Design Pattern?
● A reusable solution to a common problem● Kent Beck and Ward Cunningham applied to
computer science in 1987● Defined in Design Patterns: Elements of
Reusable Object-Oriented Software by GoF
Null Object Pattern
● Categorized as behavioral pattern● Similar to the strategy, or state pattern● Polymorphism● null interface that can be used by a
collaborator
When To Use
● Symptoms include null checks on properties● Conditional logic to display an object● Use of a placeholder
Demo
● Bespoke: lib/search/solr/empty_result_set.rb● Cheetah:
lib/cheetah/messenger/null_messenger.rb● Display_case: lib/display_case/exhibit.rb
(null decorator)● Factory_girl: lib/factory_girl/null_factory.rb
Examples in our Code
Extra Reading
Blog post on Factory Girl NullFactory class: http://robots.thoughtbot.com/design-patterns-in-the-wild-null-object