Григорий Макеев | Объектно-ориентированное программирование: с нуля к SOLID и MVC (2024) [PDF]
Автор: Григорий Макеев
Издательство: БХВ-Петербург
Серия: С нуля
ISBN: 978-5-9775-1913-7
Жанр: Объектно-ориентированное программирование (ООП), Программирование, С++,
Формат: PDF
Качество: OCR
Иллюстрации: Черно-белые
Описание:Базовая книга по приёмам объектно-ориентированного программирования (ООП) с примерами на языке C++. Разобраны основные принципы и техники разработки объектно-ориентированных программ, объяснены шаблоны проектирования (паттерны), особое внимание уделено принципам SOLID, архитектуре MVC (модель-представление-контроллер) и особенностям работы с ООП в С++.
Для начинающих разработчиков, специалистов по C++, студентов вузов.
Оглавление:
Посвящения и благодарности ............................................................................................... 5
Введение ............................................................................................................................ 7
Некоторые обозначения и сокращения ..... .... ........ ........ .... .... .... ............... .. .......... ........ 7
Что это и для кого ............................................................... ....................... ....................... 7
Зачем это вс-i:: ............................... .... .... .... ............... ........ .... ........ ...... .... ............. ... 8
Методическая проблема ..................... .... ........ ........ ........... .... ........ ........................... .... 9
Глава 1. Основы ООП .......................................................................................................... 11
1 .1. Ос новные понятия ...................................................................................................... 11
1 .2. Хватит бла-бла-бла, давайте уже код! ................... ....... ................................ .. ........... 16
1 .3. Определение классов и создание объектов ....... ........ ........... ....................................... 17
1 .4. Работа с объектами .................................. ................ ........... .... ............ .................... 20
1.5. Методы ..... ........ ................................ ................ ....... .... ........ ................ ................. 23
1 .6. Сокрытие свойств и методов .................. ........... .................... ..................................... 26
1 . 7. Конструкторы и деструкторы, жизненш,rй цикл объектов .......... ... .... ........ .. ............... 29
1.8. Наследование ... .... ........ ............ ............ ................... .... .... .... ..................... .......... 38
1.9. Расширение и изменение объектов при наследовании ............. ........ ....... .................... .. 45
1.10. Композиция .... .... .................... ............ ........ ........ .... ........... .... ................ ......... .. 46
1.11. Глубокое и поверхностное копирование, valнe- и rеfеrеnсе-семантика ........ .................... 51
1.12. Наследование, композиция, агрегация, ассоциация, зависимость .................................... 52
1.13. Диаграммы классов, последовательностей, состояний и прочий UML ........ ....................... 55
1.14. Композиция или наследование? ....................... .................... ............... .... ................ .. 60
1.15. Помещение объектов в переменные различных типов ............................. .................... .. 63
1.16. Полиморфизм ..... ................ ............ .... ........ ........ ............ ........ .......... ............ ...... 66
1.17. Приведение типов .......................... ............................ .... ........... ........ ... .................. 74
1.18. Передача и во:шрат объектов из функций в С++ ............................ ........... ................ .. 83
1.19. Проблемы работы с памятью и не только, в С++ и не только ........................................... 87
1.20. Технологии и практики управления долгоживущими объеь.-тами в С++ ......... ................. 90
Глава 2. Приемы ООП ........................................................................................................... 99
2.1. Демистификация паттернов ООП .. ........................ ........... .... .... ........................... .... .. 99
2.2. Обычные приемы и антиприемы ООП, паттерны и антипаттерны ....................................... 100
2.3. Template Method ............................................................................................................ 103
2.4. Prototype ............................................................................................... .... ........ ......... 106
2.5. Бесклассовое (прототипно-ориентированное) ООП ......... .... ....................... .................... 109
2.6.Интерфейсы .. ................ .................... ........ ................ ........... ..................................... 110
2. 7. Множественное наследование ........ ........................ .... ....... ......................................... 113
2.8. Примеси (l\1ИКC-lllIЬI, mixins) ............ ............ .... ........ .... ....... ................ .................. 115
2.9. Singleton .... ........ .... ........ ........ .... ........ .... ........ .... .... .... ........ .............................. 116
2.10. Chain ofResponsibility ... .... .... .. ...... .... ............ .... ............................................ ........ 119
2.11. Делегирование, объектная шизофрения .......... .................... ............................... ........ 126
2.12. Strategy ........................................ ............................ ............... ............ .................... 130
2.13. Adapter .... ............................ ............ .... .................... ........... ................ .................. 135
2.14. lterator ......................................................................... ....................... .... ................. 142
2.15. Шаблоны С++. Осторожно по rvшнному поmо ........ ....................................................... 150
2.16. Стандартные контейнеры STL ...... ........ .... ............ ....... .... ........ ........ ....................... 152
2.17. Decorator ......................................... .... .... ...... ...... .... ....... .... ......................... ....... 154
2.18. Proxy .................... ........ .............. ...... ........................................... ........................... 160
2.19. Composite ........................ ............................................ ....................... ...................... 163
2.20. Observer сам по себе и как пример mix.in ............. .... ....................... ............................ 167
2.21. Command ......................... ............................................ ....................... ...................... 171
2.22. Factory Method, Abstract Factory ... ........ .................... .... ................... ........ .................. 179
2.23. Abstract Factory еще раз ................................................................................................ 187
2.24. Me1nento .............. ............................ .... ........ ........................................................... 190
2.25. Bridge ..................................................................................... ............ .......... ............ 193
2.26. Visitor .................. .. .. ........ .................... ............ ........ ........... .... ........... ......... ....... 201
2.27. Одинарная и двойная диспетчеризация ................... ............ ....................... ........ ........ 209
2.28. SОLID-пр~шципы ....................................................... ............ ........... ........................ 211
2.29. Объектная интроспекция и рефлексия ............................................ .... ........ .... ............ 221
2.30. Событийно-управляемое приложение: событие, типы событшl, сообщение
обработчик, механизм обмена сообщениями, очередь сообщений .................. .......................... 225
2.31. Архитектура Model-Vie\.v-Controller (MVC) и ее варианты.
Самый простой способ ее нарушить и исправить ..................................................................... 237
Пр11ложен11е. Л11кбез по переменным II указателям в С++ .................................................. 249
П.1 . Обозначения .................... .... ............ .................... .... .... ........................................... 249
П.2 . Краткое описание объявления и примеры использования ...... .... ............ ........ ............... 249
П.3 . Полное описание ......................................... ................ ....................... ........................ 250
П.3.1. Переменная ... .... ............................ ................ ........... .... ........................ ................ 250
П.3.2 . Память ................................... ............ ....................... ................ ............ ................ 251
П. 3.3 . Адрес переменной ................................ ............ ........................................................ 252
П. 3.4. Переменные-указатели ........ .... ........ .... ........ ........ ........... ........ ............ ....... ........ 253
П. 3.5. Операции с указателями ...... ................ ...................................................................... 256
П. 3.6. Массивы ........... ..................... .... ........ .... ............................................... ................ 257
П. 3 .7 . Ссылки .......... ................ ................ ........................................................................ 259
П.4. Вопросы для самоконтроля ........ .... ............ ............ ....... .... ................ ........................ 262
Сп11сок литературы .............................................................................................................. 265
Предметный указатель ........................................................................................................... 267
Скриншоты:
Время раздачи: с 10 до 20 (минимум до появления первых 3-5 скачавших)