Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Programming Languages Python

Design Patterns in Python

Discover the modern implementation of design patterns in Python
Rating: 4.5 out of 54.5 (1,179 ratings)
8,024 students
Created by Dmitri Nesteruk
Last updated 8/2020
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Recognize and apply design patterns
  • Refactor existing designs to use design patterns
  • Reason about applicability and usability of design patterns
Curated for the Udemy for Business collection

Course content

25 sections • 107 lectures • 9h 11m total length

  • Preview06:51

  • Overview
    00:52
  • Single Responsibility Principle
    07:26
  • Open-Closed Principle
    20:55
  • Liskov Substitution Principle
    07:43
  • Interface Segregation Principle
    09:33
  • Dependency Inversion Principle
    12:26
  • Summary
    02:26

  • Gamma Categorization
    03:36
  • Overview
    01:20
  • Builder
    12:15
  • Preview09:15
  • Builder Inheritance
    05:45
  • Builder Coding Exercise
    1 question
  • Summary
    01:01

  • Overview
    02:43
  • Factory Method
    08:39
  • Factory
    06:05
  • Abstract Factory
    14:25
  • Factory Coding Exercise
    1 question
  • Summary
    01:03

  • Overview
    01:54
  • Prototype
    08:56
  • Prototype Factory
    06:50
  • Prototype Coding Exercise
    1 question
  • Summary
    00:44

  • Overview
    03:07
  • Singleton Allocator
    03:52
  • Singleton Decorator
    02:40
  • Preview02:27
  • Monostate
    06:26
  • Singleton Testability
    09:57
  • Singleton Coding Exercise
    1 question
  • Summary
    01:29

  • Overview
    01:12
  • Adapter (no caching)
    08:31
  • Adapter (with caching)
    04:01
  • Adapter Coding Exercise
    1 question
  • Summary
    00:56

  • Overview
    01:46
  • Bridge
    09:05
  • Bridge Coding Exercise
    1 question
  • Summary
    00:21

  • Overview
    01:22
  • Geometric Shapes
    06:06
  • Preview10:29
  • Composite Coding Exercise
    1 question
  • Summary
    01:42

  • Overview
    02:35
  • Python Functional Decorators
    05:37
  • Classic Decorator
    08:34
  • Dynamic Decorator
    07:24
  • Decorator Coding Exercise
    1 question
  • Summary
    01:40

Requirements

  • Good understanding of Python
  • Familiarity with latest Python language features
  • Good understanding of object-oriented design principles
  • A computer with the latest Python release and (hopefully) an IDE

Description

Course Overview

This course provides a comprehensive overview of Design Patterns in Python from a practical perspective. This course in particular covers patterns with the use of:

  • The latest versions of the Python programming language

  • Use of modern programming approaches: dependency injection, reactive programming and more

  • Use of modern developer tools such as JetBrains PyCharm

  • Discussions of pattern variations and alternative approaches

This course provides an overview of all the Gang of Four (GoF) design patterns as outlined in their seminal book, together with modern-day variations, adjustments, discussions of intrinsic use of patterns in the language.

What are Design Patterns?

Design Patterns are reusable solutions to common programming problems. They were popularized with the 1994 book Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, John Vlissides, Ralph Johnson and Richard Helm (who are commonly known as a Gang of Four, hence the GoF acronym).

The original book was written using C++ and Smalltalk as examples, but since then, design patterns have been adapted to every programming language imaginable: C#, Java, Python and even programming languages that aren't strictly object-oriented, such as JavaScript.

The appeal of design patterns is immortal: we see them in libraries, some of them are intrinsic in programming languages, and you probably use them on a daily basis even if you don't realize they are there.

What Patterns Does This Course Cover?

This course covers all the GoF design patterns. In fact, here's the full list of what is covered:

  • SOLID Design Principles: Single Responsibility Principle, Open-Closed Principle, Liskov Substitution Principle, Interface Segregation Principle and Dependency Inversion Principle

  • Creational Design Patterns: Builder, Factories (Factory Method and Abstract Factory), Prototype and Singleton

  • Structrural Design Patterns: Adapter, Bridge, Composite, Decorator, Façade, Flyweight and Proxy

  • Behavioral Design Patterns: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor

Who Is the Course For?

This course is for Python developers who want to see not just textbook examples of design patterns, but also the different variations and tricks that can be applied to implement design patterns in a modern way. For example, the use of decorators and metaclasses allows us to prepackage certain patterns for easy re-use.

Presentation Style

This course is presented as a (very large) series of live demonstrations being done in JetBrains PyCharm and presented using the Kinetica rendering engine. Kinetica removes the visual clutter of the IDE, making you focus on code, which is rendered perfectly, whether you are watching the course on a big screen or a mobile phone. 

Most demos are single-file, so you can download the file attached to the lesson and run it in PyCharm, IDLE or another IDE of your choice.

This course does not use UML class diagrams; all of demos are done via live coding.

Who this course is for:

  • Software engineers
  • Designers
  • Architects

Featured review

Kaelyn Lindquist
Kaelyn Lindquist
38 courses
16 reviews
Rating: 5.0 out of 5a year ago
The course is very well-structured and the Dmitri explains everything very clearly with great live coding. I've been exposed to design patterns in the past but I understand them with much greater depth and clarity after taking this course.

Instructor

Dmitri Nesteruk
Software/Hardware Engineering • Quant Finance • Algotrading
Dmitri Nesteruk
  • 4.5 Instructor Rating
  • 26,831 Reviews
  • 140,577 Students
  • 21 Courses

Dmitri is a quant, developer, book author and course author. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C# and C++ programming as well high-performance computing using technologies such as CUDA and FPGAs. He has been a C# MVP since 2009. 

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.