Python Design Patterns

Design patterns to improve the speed, code reuse, and performance of your Python applications

A knowledge of design patterns enables developers to improve their codebase, promotes code reuse, and makes the architecture more robust. This course focuses on showing you the practical aspects of smarter coding in Python.

We start off by easing you into the world of design patterns, and helping you brush up on your OOP skills. From there, you'll explore the most widely used patterns and create objects in a manner best suited to the situation. Then we take you through some patterns that will help you identify simple ways to realize relationships between entities. Next, we show you how to encapsulate behavior in an object and delegate requests to it, before we up the ante and delve into some advanced patterns. Last but not least, we'll make you aware of design styles that will hamper your development, rather than improving it.

With this course, thanks to patterns, you will be well equipped to craft faster, cleaner, and smarter applications

Who this course is for

The video will appeal to Python developers, engineers, data scientists, and statisticians who use Python for their day to day programming. The video follows a user-friendly approach. A knowledge of Python programming is required.

What you will learn from this course

Table of Contents

  1. Design Pattern Warm Up
    • The Course Overview
    • What Are Design Patterns?
    • Design Pattern Classification
    • Advanced Python Topics
    • Inheritance in Python

  2. Producing with Factories
    • Factory
    • Abstract Factory
    • Builder
    • Prototype
    • Singleton Versus Borg

  3. Structuring Around
    • Model View Controller
    • Fa├žade
    • Proxy
    • Decorator
    • Adapter

  4. Behaving Ourselves
    • Command
    • Interpreter
    • State
    • Chain of Responsibility

  5. Behaving Ourselves Again
    • Observer
    • Strategy
    • Memento
    • Template
    • Reactive Programming

  6. No Pattern (a.k.a AntiPattern)
    • Spaghetti Code
    • Blob
    • Functional Decomposition
    • Copy and Paste

Copyright © 2017 Packt Publishing

All rights reserved. No part of this course may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews. Every effort has been made in the preparation of this course to ensure the accuracy of the information presented. However, the information contained in this course is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this course. Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this course by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78646-067-7