By now, we have already learned about the many design patterns that we need to know in order to be an effective Julia programmer. The cases presented in the previous chapters included various problems that we can solve by writing idiomatic Julia code. Some might ask, after all these years, I have learned and adapted to the object-oriented programming (OOP) paradigm; how do I apply the same concepts in Julia? The general answer is, you won't solve the problem the same way. The solution written in Julia will look different, reflecting a different programming paradigm. Nevertheless, it is still an interesting exercise to think about how to adopt some of the OOP techniques in Julia.
In this chapter, we will cover all 23 design patterns from the classic Gang of Four (GoF) Design Patterns book. We will keep the tradition and organize...