In this course, you'll learn about a number of API design patterns, including behavioral, creational, structural, and adapter, as well as design anti-patterns, and software refactoring techniques. You’ll start by examining the overall importance of design patterns, behavioral design patterns and their implementations, and see how to create the iterator design pattern. You’ll then explore creational and structural design patterns and the implementation of each, as well as how to create the singleton and adapter design patterns. Next, you’ll learn about design anti-patterns and the different types, and software refactoring and refactoring techniques for solving architectural coding problems. Lastly, you’ll examine the API pattern principles and the basic design patterns for implementing API resource layout and naming.