We may earn an affiliate commission when you visit our partners.
Zachary Bennett

Creational design patterns lie at the heart of object-oriented programming. This course will teach you how to leverage the creational design patterns and SOLID principles in C++ in order to create well-designed systems.

Read more

Creational design patterns lie at the heart of object-oriented programming. This course will teach you how to leverage the creational design patterns and SOLID principles in C++ in order to create well-designed systems.

Object-oriented programming in C++ can be overly complex. In this course, Design Patterns in C++: Creational, you’ll learn to use the primary creational design patterns as well as SOLID principles to break down some of this complexity. First, you’ll explore the SOLID design principles and see how they can help you work with object-oriented programming more efficiently. Next, you’ll discover some of the basic creational design patterns including the singleton, builder, and prototype patterns. Finally, you’ll learn how to leverage some of the advanced creational design patterns including factory method, abstract factory, and dependency injection. When you’re finished with this course, you’ll have the skills and knowledge of creational design patterns needed to better design software systems with C++.

Enroll now

What's inside

Syllabus

Course Overview
SOLID Design Principles
Basic Creational Patterns
Advanced Creational Patterns
Read more

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Emphasizes SOLID design principles, which are crucial for designing robust and scalable systems in object-oriented programming
Led by expert instructor Zachary Bennett, a recognized expert in object-oriented programming
Provides a solid foundation in creational design patterns, essential for building flexible and extensible applications
Introduces advanced creational design patterns, enabling learners to create more complex and sophisticated software systems
Leverages practical examples and exercises, allowing learners to apply their knowledge and skills
Covers the basics of object-oriented programming in C++, making it accessible to both beginners and experienced programmers

Save this course

Save Design Patterns in C++ 20: Creational 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 C++ 20: Creational with these activities:
Participate in a Study Group for Creational Design Patterns
Enhance your understanding by collaborating with peers and discussing the concepts in depth.
Show steps
  • Form a study group with classmates.
  • Meet regularly to discuss the course material.
  • Work together to solve problems and clarify concepts.
Learn about the SOLID Principles in C++
Strengthen your foundation in object-oriented programming by exploring the principles that guide well-designed software.
Browse courses on SOLID Principles
Show steps
  • Read articles or watch videos on the SOLID principles.
  • Identify examples of the SOLID principles in real-world C++ code.
Create a Class Diagram for a Software Design
Solidify your understanding of creational design patterns by applying them in a practical exercise.
Browse courses on Class Diagrams
Show steps
  • Identify the classes and their relationships.
  • Draw the class diagram using the appropriate notation.
  • Review and refine the diagram to ensure it accurately reflects the design.
Three other activities
Expand to see all activities and additional details
Show all six activities
Read 'Design Patterns: Elements of Reusable Object-Oriented Software'
Expand your knowledge of design patterns by delving into a comprehensive reference book.
View Design Patterns on Amazon
Show steps
  • Read the chapters on creational design patterns.
  • Identify the patterns used in real-world examples.
Mentor Junior Programmers on Creational Design Patterns
Reinforce your knowledge by sharing it with others and fostering their growth in object-oriented programming.
Show steps
  • Volunteer as a mentor for junior programmers.
  • Create lesson plans and activities to teach creational design patterns.
  • Provide guidance and support to your mentees.
Develop a Creational Design Pattern Library in C++
Showcase your mastery of creational design patterns by constructing a comprehensive library that can be used in future projects.
Show steps
  • Design the interface for the library.
  • Implement the creational design patterns using C++ template metaprogramming.
  • Write unit tests to verify the correctness of the library.
  • Document the library for easy use by others.

Career center

Learners who complete Design Patterns in C++ 20: Creational will develop knowledge and skills that may be useful to these careers:
Software Architect
As a Software Architect, you will be expected to design, build, and maintain complex software systems. This course can help you build a foundation in object-oriented programming design patterns, which are essential for creating well-designed and maintainable software systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can write code that is easier to read, maintain, and extend.
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and testing software applications. This course can help you build a foundation in object-oriented programming design patterns, which are essential for writing clean, maintainable, and reusable code. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can write code that is easier to read, maintain, and extend.
Technical Lead
As a Technical Lead, you will be responsible for leading a team of software engineers in the design, development, and testing of software applications. This course can help you build a foundation in object-oriented programming design patterns, which are essential for creating well-designed and maintainable software systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can lead your team in writing code that is easier to read, maintain, and extend.
Computer Programmer
As a Computer Programmer, you will be responsible for writing code to implement software applications. This course can help you build a foundation in object-oriented programming design patterns, which are essential for writing clean, maintainable, and reusable code. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can write code that is easier to read, maintain, and extend.
Data Scientist
As a Data Scientist, you will be responsible for using data to solve business problems. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop data-driven applications. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop data-driven applications that are easier to read, maintain, and extend.
Systems Analyst
As a Systems Analyst, you will be responsible for analyzing and designing business systems. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop business systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop business systems that are easier to read, maintain, and extend.
Business Analyst
As a Business Analyst, you will be responsible for analyzing business needs and developing solutions to meet those needs. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop business solutions. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop business solutions that are easier to read, maintain, and extend.
Project Manager
As a Project Manager, you will be responsible for planning, organizing, and executing projects. This course may be useful to you if you are interested in using object-oriented programming design patterns to manage projects. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can manage projects in a way that is easier to understand, maintain, and extend.
Quality Assurance Analyst
As a Quality Assurance Analyst, you will be responsible for testing software applications to ensure that they meet quality standards. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop quality assurance tests. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop quality assurance tests that are easier to read, maintain, and extend.
IT Consultant
As an IT Consultant, you will be responsible for providing IT consulting services to clients. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop IT solutions. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop IT solutions that are easier to read, maintain, and extend.
Database Administrator
As a Database Administrator, you will be responsible for managing and maintaining databases. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop database management systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop database management systems that are easier to read, maintain, and extend.
Systems Engineer
As a Systems Engineer, you will be responsible for designing, developing, and maintaining computer systems. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop computer systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop computer systems that are easier to read, maintain, and extend.
Network Engineer
As a Network Engineer, you will be responsible for designing, developing, and maintaining computer networks. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop network management systems. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop network management systems that are easier to read, maintain, and extend.
Computer Support Specialist
As a Computer Support Specialist, you will be responsible for providing technical support to computer users. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop computer support tools. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop computer support tools that are easier to read, maintain, and extend.
Web Developer
As a Web Developer, you will be responsible for designing, developing, and maintaining websites. This course may be useful to you if you are interested in using object-oriented programming design patterns to develop web applications. Specifically, the course covers creational design patterns, which are used to create objects in a flexible and efficient way. By understanding these patterns, you can develop web applications that are easier to read, maintain, and extend.

Reading list

We've selected 14 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 C++ 20: Creational.
Is the definitive reference on the C++ programming language. It is written by the creator of C++ and provides a comprehensive overview of the language and its features. It valuable resource for any C++ developer.
This classic book on design patterns provides a comprehensive overview of the creational, structural, and behavioral design patterns. It valuable resource for anyone interested in learning about design patterns and how to apply them in software development.
Provides a detailed history of the design and evolution of the C++ programming language. It valuable resource for any C++ developer who wants to understand the history of the language and how it has evolved over time.
Provides a comprehensive overview of the C++ programming language. It is written for intermediate and advanced developers and provides a deep dive into the language and its features. It valuable resource for any developer who wants to learn more about C++.
Provides a comprehensive overview of C++ templates. It covers all aspects of templates, from the basics to the most advanced features. It valuable resource for any C++ developer who wants to learn more about templates.
Provides a comprehensive overview of design patterns and best practices in C++. It covers a wide range of topics, including creational, structural, and behavioral patterns, as well as concurrency and performance optimization.
Provides a collection of 42 specific ways to improve your use of C++11 and C++14. It covers a wide range of topics, including performance, code quality, and maintainability. It valuable resource for any C++ developer who wants to learn more about the latest C++ standards.
Provides a fun and engaging introduction to design patterns. It uses humor, real-world examples, and interactive exercises to help readers understand the concepts and how to apply them in their own code.
Provides a set of coding standards for C++ development. It covers a wide range of topics, including naming conventions, coding style, and error handling. It valuable resource for any C++ development team.
Provides a comprehensive overview of concurrency in C++. It covers all aspects of concurrency, from the basics to the most advanced features. It valuable resource for any C++ developer who wants to learn more about concurrency.
Provides a collection of challenging C++ puzzles and problems. It valuable resource for any C++ developer who wants to improve their skills and learn more about the language.
Provides a collection of even more challenging C++ puzzles and problems. It valuable resource for any C++ developer who wants to push their skills to the limit.
Provides a comprehensive overview of the C++ programming language. It is written for beginners and provides a gentle introduction to the language and its features. It valuable resource for any beginner who wants to learn C++.

Share

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

Similar courses

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