В книге заново разобраны и переосмыслены классические паттерны объектно-ориентированного проектирования на примере и с учётом всех возможностей современного языка C++. Указаны сильные стороны базовых паттернов проектирования, даны рекомендации по их сочетаемости, рассмотрены роли различных паттернов при инкапсуляции, обеспечении полиморфизма и в особенности наследования. Приведены примеры выразительного идиоматического языка C++, рассказано о работе с шаблонами стандартной библиотеки STL, затронуты сложные аспекты теории типов, интеграции больших приложений и работы с унаследованным кодом.
Для специалистов по C++ и архитекторов больших программных систем
Принципы и паттерны
С этой книгой Вы:
- Научитесь оценивать свой код, сверяя его с проверенными паттернами проектирования
- Разберитесь, что такое проектирование программ, какие цели ставятся при проектировании, в частности, что такое изменяемость и расширяемость программ
- Исследуйте преимущества и недостатки каждого подхода к проектированию
- Узнайте, как паттерны проектирования помогают решать поставленные задачи
- Выбирайте именно тот паттерн проектирования, который наиболее уместен в конкретной ситуации
Эта книга – настоящий подарок для любого программиста, работающего с языком C++ . В ней множество реальных примеров использования паттернов проектирования и захватывающих идей. Книга решительно превзошла все мои ожидания.
Марк Саммерфилд, владелец компании Qtrac Ltd
Качественное проектирование программного обеспечения — залог успеха любого программного проекта.
Необходимо глубоко понимать, к каким последствиям приводят любые решения, принимаемые при проектировании. Кроме того, нужно хорошо видеть весь спектр альтернативных решений. Эта книга поможет разработчикам, специализирующимся на C++, составить представление о современных возможностях проектирования программ на этом мощном языке.
В книге объясняется, как управлять зависимостями и абстракциями, применять и реализовывать современные паттерны проектирования, которые позволяют в полной мере выразить возможности языка.