Summary
In this chapter, you learned how to refactor existing code to take full advantage of object-oriented code. We prepared the code for future requirements, reduced maintenance cost, and maximized code reuse.
We worked with many functional programming features included in Swift and combined them with everything we discussed so far about object-oriented programming. We analyzed the differences between imperative and functional programming approaches for many algorithms. We realized that Swift 3 introduced many changes compared with the code generated with previous Swift versions.
Now that you have learned about refactoring code to take advantage of object-oriented programming and include functional programming pieces in our object-oriented code, we are ready to protect and organize the code, which is the topic of the next chapter.