Software design patterns have been around for more than two decades. Should you use them with Swift, a programming language that’s only a couple of years old? Do you know which one to pick to solve a particular problem? Does Swift offer better alternatives? Perhaps it even renders some of these patterns obsolete? This course, along with the other two parts of the series, attempts to answer these questions. In this course, Design Patterns in Swift: Behavioral, you’ll learn about patterns that increase the efficiency and flexibility of how objects interact with each other. First, you'll see a demonstration of each pattern through practical demos implemented in Swift 4. Next, to emphasize the benefits of using reusable best practices, you'll also see comparisons of brute-force approaches with pattern-based solutions. Finally, you’ll see situations where Swift language features provide a more straightforward solution than the traditional design pattern. When you’re finished with this course, you'll have the skills and knowledge of applying design patterns needed to develop flexible, easy to enhance and maintain Swift projects.