The document discusses several design patterns including Inversion of Control (IoC), Dependency Injection (DI), Repository pattern, and Unit of Work pattern. IoC is a design principle that inverts control of object creation and dependencies to achieve loose coupling. Dependency Injection is a pattern that implements IoC by allowing dependent objects to be created outside of a class. The Repository pattern abstracts data access logic from business logic. The Unit of Work pattern groups multiple data transactions into a single transaction.