In this chapter, we learned how no design or bad design using type hierarchies can lead to technical debt. We studied the decorator pattern and learned a great way to extend the functionality of our application using IoC.
We saw multiple examples of single method interfaces and learned to appreciate the fact that less is more and that good design is worthwhile.
Hopefully, by the end of this chapter, we can all agree that we can leverage design patterns to write better Go code.
In our next chapter, we'll use the adapter design pattern and other functional programming techniques to design and build better APIs.