Description:

Explore the design and implementation of five commonly used behavioral design patterns: Strategy, Chain of Responsibility, Observer, Command, and Iterator. Examine how these patterns can be used in Python built-in functions, in simple and complex use cases, for performing undo operations, and with Python special methods. Key concepts covered in this course include the Strategy pattern, how to design and implement the  pattern, and how it is used in Python built-in functions; and learning the Chain of Responsibility pattern and how to write code to implement the pattern. Next, you will learn about the Observer pattern and how to implement the pattern for a simple use case and how to implement the pattern for a more complex use case. Finally, learners will study the Command pattern and how to implement the pattern to perform undo operations; and learn the Iterator pattern and its applications and learn to design an Iterator by using special methods in Python.

Target Audience:

Duration: 01:27

Description:

Explore the design and implementation of five commonly used structural Python design patterns: Adapter, Decorator, Facade, Proxy, and Flyweight. In this 14-video course, learners examine how these patterns can be used for tasks such as working with legacy components, dynamically adding responsibilities, offering a simple client interface, controlling object access, and efficiently using lightweight resources. Key concepts covered here include design of the Adapter pattern and need for the pattern when working with legacy components; learning how to write code for the Adapter pattern to offer a consistent interface to clients; and learning design of the Decorator pattern and the importance for adding responsibilities dynamically. Continue by observing how to implement the Decorator pattern to allow adding responsibilities at runtime. Next, you will learn about the design of the Façade pattern and implementing the pattern to offer a simple interface to clients; learn to design and implement the Proxy pattern to control access to an object; and learn the design of the Flyweight pattern and how to implement the pattern to efficiently use lightweight resources.

Target Audience:

Duration: 01:27

Description:

In this 16-video course, learners will explore the details and implementation of five commonly used creational design patterns: Singleton, Factory, Abstract Factory, Builder, and Object Pool. Key concepts covered here include how the Singleton pattern works and when to use it; how to write code for a simple implementation of the Singleton pattern; and how to implement the Singleton pattern by using a more Pythonic style and global objects in Python. Next, learn how the Factory and Abstract Factory patterns work; how to iteratively improve the design of code using refactoring; and how to design and implement the serializer with the Factory pattern. Continue by learning how to apply the Abstract Factory pattern to create a family of objects; how the Builder pattern works and how to implement a simple design for the Builder pattern; and how the Object Pool pattern works and how to implement the Object Pool pattern to limit the number of instances. Finally, learn how to improve the Object Pool pattern by making the object pool a singleton.

Target Audience:

Duration: 01:50

Description:

Explore how the SOLID principles can help to make software designs easier to understand and maintain for Python developers. In this 14-video course, learners will examine the five SOLID principles—Single Responsibility, Open/Closed, Liskov's Substitution, Interface Segregation, and Dependency Inversion—as well as creational, structural, and behavioral design patterns. Key concepts covered here include the basic principles of good design in code; learning the Single Responsibility and Open/Closed principles of good design; and learning the Liskov's Substitution, Interface Segregation, and Dependency Inversion principles of good design. Next, learners will examine the principle of Least Knowledge and the Hollywood principle of good design; examine issues that may arise when classes do not implement the principle of Single Responsibility; and observe how to implement the principles of Single Responsibility and Open/Closed. Continue by learning how to design and implement the Liskov's Substitution principle, the Interface Segregation principle, and the Dependency Inversion principle. Finally, learners will study the three broad categories of design patterns and when to use each of them.

Target Audience:

Duration: 01:35