What Is the Objective-C Language?
September 30, 2024
Article
Recommended experience
Intermediate level
Knowledge of object-oriented programming, desire to enhance understanding of design patterns, & familiarity with C++ & later versions are required.
Recommended experience
Intermediate level
Knowledge of object-oriented programming, desire to enhance understanding of design patterns, & familiarity with C++ & later versions are required.
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
Add to your LinkedIn profile
4 assignments
Add this credential to your LinkedIn profile, resume, or CV
Share it on social media and in your performance review
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.
As you progress, the course presents more advanced topics like the Object Pool and Prototype patterns, helping you understand how to optimize memory usage and object duplication. Each pattern is paired with real-world examples and modern C++ techniques, ensuring you not only understand the theory but can also apply the patterns in practical scenarios. You'll also explore alternative design solutions like the Monostate pattern and strategies for improving flexibility in software architecture. By the end of the course, you will have an in-depth understanding of how to use creational patterns to solve complex design problems in a systematic and efficient way. This course equips you with the tools and knowledge to write better code by leveraging the power of creational design patterns in modern C++. This course is designed for intermediate to advanced C++ developers who have a working knowledge of object-oriented programming and want to enhance their understanding of design patterns. Familiarity with C++ and later versions is required.
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.
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.
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.
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.
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.
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.
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.
9 videos2 assignments
Packt helps tech professionals put software to work by distilling and sharing the working knowledge of their peers. Packt is an established global technical learning content provider, founded in Birmingham, UK, with over twenty years of experience delivering premium, rich content from groundbreaking authors on a wide range of emerging and popular technologies.
Intermediate · Course
University of Alberta
Intermediate · Course
Beginner · Course
Beginner · Specialization
Explore roles and skills, learn more effectively with Coursera Coach, and earn recognized credentials
Earn a degree from world-class universities - 100% online
Upskill your employees to excel in the digital economy
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.
If you complete the course successfully, your electronic Course Certificate will be added to your Accomplishments page - from there, you can print your Course Certificate or add it to your LinkedIn profile.
This course is one of a few offered on Coursera that are currently available only to learners who have paid or received financial aid, when available.
You will be eligible for a full refund until two weeks after your payment date, or (for courses that have just launched) until two weeks after the first session of the course begins, whichever is later. You cannot receive a refund once you’ve earned a Course Certificate, even if you complete the course within the two-week refund period. See our full refund policy.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
Financial aid available,