Summary
In this chapter, you've learned about many design patterns and how they apply to Ruby. You've learned that some design patterns are built into Ruby, and others are implemented by core classes and standard libraries. You've also learned how best to implement the singleton, null object, visitor, adapter, and strategy patterns in Ruby. With this knowledge, you are now better able to apply these design patterns correctly in your libraries and make them more maintainable. Additionally, you may be able to recognize and remove inappropriate use of these design patterns from your libraries, also making them more maintainable.
In the next chapter, the last chapter of Section 2, you'll learn about optimizing your library.