This course provides a comprehensive exploration of creational design patterns in modern C++. Starting with the fundamental S.O.L.I.D. principles, it prepares you with a strong foundation in design. You will then dive into patterns such as Singleton, where you'll learn about lazy instantiation, thread safety, and common issues, while the Factory Method and Abstract Factory patterns are broken down to highlight their power in managing object creation complexity.
Recommended experience
What you'll learn
Apply creational design patterns in modern C++ projects
Analyze and solve complex design challenges using flexible, reusable solutions
Evaluate code maintainability by incorporating S.O.L.I.D. principles
Optimize application performance through patterns like Object Pool and Prototype
Details to know
Add to your LinkedIn profile
October 2024
4 assignments
See how employees at top companies are mastering in-demand skills
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
There are 7 modules in this course
In this module, we will explore the foundational concepts of software design, starting with an introduction to the course and progressing through key principles and patterns. We’ll cover the basics of the Unified Modeling Language (UML), dive into the S.O.L.I.D. design principles, and introduce creational patterns that set the stage for more advanced discussions.
What's included
7 videos1 reading
In this module, we will dive deep into the singleton design pattern, exploring its basic implementation and common use cases. We’ll tackle advanced topics such as lazy instantiation, multithreading challenges, and alternative designs like the monostate pattern. Additionally, we'll cover real-world examples, and registry patterns, and evaluate when to use singleton effectively in your applications.
What's included
18 videos
In this module, we will explore the factory method design pattern, covering its structure and basic implementation. You'll learn how to apply it in different contexts, including application frameworks and parameterized approaches. We’ll also discuss how to integrate memory management with smart pointers and analyze the advantages and trade-offs of using the factory method.
What's included
10 videos1 assignment
In this module, we will explore the object pool design pattern, focusing on its structure and practical applications. You will learn how to implement pooling for game objects and multiple actors, as well as create a flexible, generic object pool. Through examples, we’ll cover advanced topics such as reducing dependencies and optimizing memory allocation, helping you decide when and how to use object pooling effectively.
What's included
10 videos
In this module, we will explore the abstract factory design pattern, starting with its intent and structure. You’ll learn to apply it by refactoring basic examples and implementing it in a database framework with SQL Server and MySQL classes. We’ll also cover advanced usage, integrating it with the factory method, and discuss the pros and cons to help you determine when to use the abstract factory in your designs.
What's included
11 videos1 assignment
In this module, we will explore the prototype design pattern, focusing on its intent and how it facilitates object cloning. You will learn how to apply the pattern through practical examples, including game development scenarios. We’ll address the difference between shallow and deep copies, handle varying object states, and develop a prototype manager. Lastly, we’ll explore memory management optimizations using smart pointers and evaluate when the prototype pattern is most beneficial in software design.
What's included
17 videos
In this module, we will explore the builder design pattern, focusing on its intent and structure. You will learn how to implement the builder pattern through practical examples, such as refactoring a file class to resolve design issues. We will also cover advanced topics like modern builder approaches and the fluent interface. By the end, you’ll be able to assess when and how to effectively use the builder pattern in your projects.
What's included
9 videos2 assignments
Instructor
Offered by
Recommended if you're interested in Mobile and Web Development
Adobe
University of Colorado Boulder
Why people choose Coursera for their career
New to Mobile and Web Development? Start here.
Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
Yes, you can preview the first video and view the syllabus before you enroll. You must purchase the course to access content not included in the preview.
If you decide to enroll in the course before the session start date, you will have access to all of the lecture videos and readings for the course. You’ll be able to submit assignments once the session starts.
Once you enroll and your session begins, you will have access to all videos and other resources, including reading items and the course discussion forum. You’ll be able to view and submit practice assessments, and complete required graded assignments to earn a grade and a Course Certificate.