We may earn an affiliate commission when you visit our partners.
Pluralsight logo

Design Patterns in Python 3

Gerald Britton

This course will teach you how to use proven object-oriented design patterns to significantly enhance the stability, testability, and maintainability of your Python development while decreasing your development time.

Read more

This course will teach you how to use proven object-oriented design patterns to significantly enhance the stability, testability, and maintainability of your Python development while decreasing your development time.

Whether you're an experienced Python developer or just getting started, having ready-to-use solutions in your toolkit will make your job easier and more satisfying. Thanks to the famous “Gang of Four,” there are 24 essential design patterns you can easily use in Python. In this course, Design Patterns in Python 3, you’ll learn to use object-oriented design patterns in Python. First, you’ll explore the origins of design patterns and their applicability to programming projects of all sizes. Next, you’ll discover the many design patterns described in the well-known “Gang of Four” book on the topic. Finally, you’ll learn how to apply these patterns to solve real-world problems that occur in businesses and organizations of all sizes. When you’re finished with this course, you’ll have the skills and knowledge of object-oriented Python programming needed to build stable, maintainable, and extensible applications.

Enroll now

What's inside

Syllabus

Course Overview
Introduction
Creational Patterns: Factory
Creational Patterns: Abstract Factory
Read more
Creational Patterns: Builder
Creational Patterns: Prototype
Creational Patterns: Singleton
Structural Patterns: Adapter
Structural Patterns: Bridge
Structural Patterns: Composite
Structural Patterns: Decorator
Structural Patterns: Façade
Structural Patterns: Flyweight
Structural Patterns: Proxy
Behavioral Patterns: Strategy
Behavioral Patterns: Command
Behavioral Patterns: State
Behavioral Patterns: Observer
Behavioral Patterns: Visitor
Behavioral Patterns: Chain of Responsibility
Behavioral Patterns: Mediator
Behavioral Patterns: Memento
Behavioral Patterns: Null
Behavioral Patterns: Template
Behavioral Patterns: Iterator
Behavioral Patterns: Interpreter
Course Summary

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches learners advanced object-oriented Python programming skills to build robust, scalable, and efficient applications
Suitable for experienced Python developers looking to enhance their development workflow
Covers a comprehensive range of design patterns that are widely adopted in software development
Led by instructor Gerald Britton, who possesses expertise in software design and development
Provides hands-on learning opportunities through labs and interactive materials
Part of a series of courses, indicating a structured and comprehensive learning path in software design

Save this course

Save Design Patterns in Python 3 to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Design Patterns in Python 3 with these activities:
Review Python syntax and object oriented programming (OOP) concepts
Reviewing Python syntax and OOP concepts before the course will strengthen your foundation and enhance your ability to follow the course content more easily.
Browse courses on Python Syntax
Show steps
  • Review Python data types, variables, operators, and control flow
  • Review classes, objects, inheritance, and polymorphism in OOP
  • Complete a few practice exercises or solve coding challenges to test your understanding
Review 'Design Patterns: Elements of Reusable Object-Oriented Software'
This classic book provides a comprehensive overview of design patterns and will enhance your understanding of the concepts discussed in the course.
Show steps
  • Read through the book, focusing on the chapters relevant to the course
  • Take notes and mark important concepts
Show all two activities

Career center

Learners who complete Design Patterns in Python 3 will develop knowledge and skills that may be useful to these careers:
Software Developer
Software Developers use various programming languages, including Python, to design, code, test, and maintain computer software. Some Software Developers specialize in roles like game development or operating system development. Graduates of this course will be able to apply design patterns to professional projects, which is a critical skill for any Software Developer. By learning about design patterns, graduates will gain extra proficiency with Python, enhancing their skillset.
Python Developer
Python Developers specialize in using Python to design, program, and build software. They work in many areas, from telecommunications and government, to finance, healthcare, and retail. With the ability to implement design patterns, graduates of this course will have advanced skills and knowledge of Python, giving them an edge in the job market. They will be able to apply these design patterns to any project they work on, which is an invaluable skill.
Applications Architect
Applications Architects design and maintain software systems, ensuring they meet specific business needs. They work closely with other professionals, including Software Developers, to ensure that systems are efficient, scalable, and secure. Graduates of this course will have a strong foundation in object-oriented Python programming, making them qualified candidates for Applications Architect roles. They will be able to use design patterns to create high-quality, maintainable software systems.
Computer Programmer
Computer Programmers use their knowledge of programming languages and software development principles to design, code, test, and maintain computer software. They may work on a variety of projects, from operating systems to mobile apps. Graduates of this course will be able to apply design patterns to their work, making them more efficient and productive. They will be able to create more robust and maintainable software systems, which is essential for Computer Programmers.
Back-End Developer
Back-End Developers are responsible for the server-side logic of websites and applications. They work with databases, servers, and other back-end technologies to ensure that applications run smoothly and efficiently. Graduates of this course will be able to use design patterns to create high-quality, scalable back-end systems. They will be able to apply these design patterns to any project they work on, which is an invaluable skill.
Web Developer
Web Developers are responsible for the design and development of websites and web applications. They work with a variety of technologies, including HTML, CSS, JavaScript, and Python, to create websites that are both functional and visually appealing. Graduates of this course will be able to use design patterns to create high-quality, maintainable websites. They will be able to apply these design patterns to any project they work on, which is an invaluable skill.
Data Scientist
Data Scientists use their knowledge of data analysis and machine learning to extract insights from data. They work in a variety of industries, from healthcare to finance, to help businesses make better decisions. Graduates of this course may be interested in Data Science roles, as design patterns are used in machine learning and data analysis. This course may be useful for those who wish to pursue a career in Data Science, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Front-End Developer
Front-End Developers are responsible for the design and development of the user interface of websites and applications. They work with a variety of technologies, including HTML, CSS, JavaScript, and Python, to create websites that are both functional and visually appealing. Graduates of this course may be interested in Front-End Development, as design patterns can be applied to front-end development. This course may be useful for those who wish to pursue a career in Front-End Development, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Software Engineer
Software Engineers apply engineering principles to the design, development, testing, and maintenance of software systems. They work in a variety of industries, from healthcare to finance, to create software that meets the needs of businesses and organizations. Graduates of this course will be able to use design patterns to create high-quality, maintainable software systems. They will be able to apply these design patterns to any project they work on, which is an invaluable skill.
Mobile Developer
Mobile Developers design and develop mobile applications for smartphones and tablets. They work with a variety of technologies, including Java, Kotlin, Swift, and Python, to create apps that are both functional and visually appealing. Graduates of this course may be interested in Mobile Development, as design patterns can be applied to mobile app development. This course may be useful for those who wish to pursue a career in Mobile Development, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Game Developer
Game Developers design and develop video games for a variety of platforms, including consoles, PCs, and mobile devices. They work with a variety of technologies, including C++, C#, Java, and Python, to create games that are both fun and engaging. Graduates of this course may be interested in Game Development, as design patterns can be applied to game development. This course may be useful for those who wish to pursue a career in Game Development, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Database Administrator
Database Administrators are responsible for the design, implementation, and maintenance of databases. They work with a variety of database technologies, including SQL, NoSQL, and Hadoop, to ensure that databases are efficient, scalable, and secure. Graduates of this course may be interested in Database Administration, as design patterns can be applied to database design and implementation. This course may be useful for those who wish to pursue a career in Database Administration, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Project Manager
Project Managers are responsible for the planning, execution, and closure of projects. They work with a variety of stakeholders, including project team members, clients, and sponsors, to ensure that projects are completed on time, within budget, and to the required quality standards. Graduates of this course may be interested in Project Management, as design patterns can be applied to project planning and execution. This course may be useful for those who wish to pursue a career in Project Management, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Business Analyst
Business Analysts work with businesses and organizations to identify and solve business problems. They use a variety of techniques, including data analysis, process mapping, and stakeholder interviews, to help businesses improve their operations. Graduates of this course may be interested in Business Analysis, as design patterns can be applied to business process modeling and analysis. This course may be useful for those who wish to pursue a career in Business Analysis, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.
Technical Writer
Technical Writers create and maintain documentation for a variety of technical products, including software, hardware, and systems. They work with engineers, product managers, and other stakeholders to ensure that documentation is accurate, clear, and concise. Graduates of this course may be interested in Technical Writing, as design patterns can be used to structure and organize technical documentation. This course may be useful for those who wish to pursue a career in Technical Writing, as it will provide them with a strong foundation in object-oriented Python programming, including the use of design patterns.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Design Patterns in Python 3.
This book, often referred to as the "Gang of Four" book, is the seminal work on design patterns. It provides a comprehensive overview of 23 design patterns, including creational, structural, and behavioral patterns. It valuable resource for anyone interested in learning about and applying design patterns in Python.
Provides a fun and engaging introduction to design patterns. It uses a conversational style and plenty of examples to make the concepts easy to understand. It great choice for anyone who wants to learn about design patterns without getting bogged down in technical details.
Provides a practical guide to using design patterns in Python. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for Python developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns from a software development perspective. It covers a wide range of topics, including object-oriented design principles, design patterns, and refactoring techniques. It valuable resource for software developers who want to improve their design skills.
Provides a comprehensive overview of design patterns in Java. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for Java developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns in PHP. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for PHP developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns in Ruby. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for Ruby developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns in C#. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for C# developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns in F#. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for F# developers who want to improve the quality and maintainability of their code.
Provides a comprehensive overview of design patterns in Delphi. It covers a wide range of design patterns, including creational, structural, and behavioral patterns. It valuable resource for Delphi developers who want to improve the quality and maintainability of their code.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser