English | 2018 | ISBN: 1788832564 | 532 Pages | EPUB | 10 MB
Hands-On Design Patterns with C++: Master the Design Patterns to create robust, reusable and easily maintainable apps
This guide will amplify your knowledge and simplify your journey through the world of design patterns.
C++ is a general-purpose programming language built with a bias towards embedded programming and systems programming. Design patterns are, in essence, a library of reusable components, only for software architecture, not for a concrete implementation.
With this book, we will teach you how to recognize and apply some of the most common C++ design patterns and idioms. We will focus on the design patterns that naturally lend themselves to the needs of a C++ programmer and fit well with the language’s features. Armed with the knowledge of these patterns, you will spend less time searching for a solution to a common problem and be familiar with the solutions developed from experience, their advantages and drawbacks. The other use of design patterns is as a concise and efficient way to communicate. The patterns are familiar and instantly recognizable solutions to specific problems; with its use, sometimes with a single line of code, we can convey a considerable amount of information. The code speaks: “this is the problem we are facing, these are additional considerations that are most important in our case, and, thus, the following well-known solution was chosen.”
By the end of this book, you will have gained a comprehensive understanding of the Design Patterns to create robust, reusable and easily maintainable apps.
What You Will Learn
- Recognize some of the most common design patterns used in C++, and what additional information is expressed by their use in context.
- Understand how to use C++ generic programming to solve some of the most common design problems.
- Explore the most powerful C++ idioms, their strengths, and drawbacks.
- Rediscover some of the most popular C++ idioms, such as Resource Acquisition Is Initialization, and learn the new ways they can be used together with generic programming.
- Understand the impact of different design and implementation choices on the program performance, and how to write well-designed and readable programs without sacrificing performance.