Packt
Structural Design Patterns in Modern C++
Packt

Structural Design Patterns in Modern C++

包含在 Coursera Plus

深入了解一个主题并学习基础知识。
中级 等级

推荐体验

1 周 完成
在 10 小时 一周
灵活的计划
自行安排学习进度
深入了解一个主题并学习基础知识。
中级 等级

推荐体验

1 周 完成
在 10 小时 一周
灵活的计划
自行安排学习进度

您将学到什么

  • Identify and describe key structural design patterns in C++.

  • Explain the intent and application of S.O.L.I.D. principles and design patterns like Adapter, Façade, and Proxy.

  • Differentiate between the pros and cons of each design pattern and decide when to apply them.

  • Assess the performance impact and code quality improvements after applying design patterns.

要了解的详细信息

可分享的证书

添加到您的领英档案

作业

5 项作业

授课语言:英语(English)

了解顶级公司的员工如何掌握热门技能

Petrobras, TATA, Danone, Capgemini, P&G 和 L'Oreal 的徽标

该课程共有8个模块

In this module, we will explore the fundamental concepts of design patterns in modern C++. We begin with an introduction to design patterns and UML class diagrams, then dive into the S.O.L.I.D. principles that serve as foundational guidelines for writing efficient and scalable code. The module concludes with a high-level overview of structural design patterns, setting the stage for deeper exploration in later sections.

涵盖的内容

7个视频1篇阅读材料

In this module, we will explore the Adapter Design Pattern, a key structural pattern used to reconcile incompatible interfaces in software. We begin with an introduction to the pattern and a basic example, followed by a hands-on application using game input. You'll learn the steps for implementation and understand the differences between object and class adapters, concluding with an analysis of the pattern's strengths and limitations.

涵盖的内容

7个视频1个插件

In this module, we will dive into the Façade Design Pattern, which simplifies complex subsystems by providing a unified interface. We begin with a basic overview and example, followed by a four-part series where you'll build a console project using the façade pattern. Additionally, we will explore how to create a façade for Linux systems and wrap up with a discussion of the pros and cons of this pattern in modern software architecture.

涵盖的内容

8个视频1个作业1个插件

In this module, we will explore the Proxy Design Pattern, which provides a surrogate or placeholder for another object to control access. We will introduce key variations, such as virtual, protection, and remote proxies, demonstrating how to implement and apply them in real-world applications. You'll also learn how remote proxies function in distributed systems and delve into smart proxies for enhanced functionality. The module concludes with an evaluation of the benefits and trade-offs of using proxy patterns in software design.

涵盖的内容

13个视频1个插件

In this module, we will explore the Decorator Design Pattern, which allows for adding responsibilities to objects dynamically without altering their structure. Starting with an introduction and basic example, we move on to building decorators for streams, adding buffering, encryption, and compression functionalities. You'll learn how to implement the abstract decorator class and understand the differences between composition and inheritance in design. The module concludes with a breakdown of decorator types and an analysis of the pattern's strengths and limitations.

涵盖的内容

13个视频1个插件

In this module, we will explore the Composite Design Pattern, which enables developers to treat individual objects and compositions of objects uniformly. We begin with an introduction to the pattern and a basic example, followed by a detailed application-to-user interface (UI) design. Through a three-part series, you will learn how to implement a UI class hierarchy and handle issues like adding parent pointers. The module concludes with an analysis of the pros and cons of using the composite pattern in various software designs.

涵盖的内容

8个视频1个作业1个插件

In this module, we will explore the Bridge Design Pattern, which separates an object's abstraction from its implementation to enable independent changes. We begin with an introduction and a basic example, followed by practical applications such as building a shape hierarchy and adding OpenGL support. You’ll also learn how to address hierarchy issues and implement advanced techniques like the handle-body and PImpl idioms. Finally, we’ll discuss the static bridge and evaluate the pattern’s strengths and weaknesses in different contexts.

涵盖的内容

15个视频1个插件

In this module, we will explore the Flyweight Design Pattern, which minimizes memory usage by sharing common object states. We begin with an introduction and a basic implementation, followed by a three-part series on applying the pattern in game development for managing 3D models. You'll also learn how to implement string interning and use Boost.Flyweight to further optimize resource management. The module concludes with a discussion of the pattern's advantages and limitations, especially in performance-critical applications.

涵盖的内容

11个视频3个作业

位教师

Packt - Course Instructors
Packt
971 门课程231,340 名学生

提供方

Packt

从 Software Development 浏览更多内容

人们为什么选择 Coursera 来帮助自己实现职业发展

Felipe M.
自 2018开始学习的学生
''能够按照自己的速度和节奏学习课程是一次很棒的经历。只要符合自己的时间表和心情,我就可以学习。'
Jennifer J.
自 2020开始学习的学生
''我直接将从课程中学到的概念和技能应用到一个令人兴奋的新工作项目中。'
Larry W.
自 2021开始学习的学生
''如果我的大学不提供我需要的主题课程,Coursera 便是最好的去处之一。'
Chaitanya A.
''学习不仅仅是在工作中做的更好:它远不止于此。Coursera 让我无限制地学习。'
Coursera Plus

通过 Coursera Plus 开启新生涯

无限制访问 10,000+ 世界一流的课程、实践项目和就业就绪证书课程 - 所有这些都包含在您的订阅中

通过在线学位推动您的职业生涯

获取世界一流大学的学位 - 100% 在线

加入超过 3400 家选择 Coursera for Business 的全球公司

提升员工的技能,使其在数字经济中脱颖而出

常见问题