Опубликовано

Новинка: “Объектно-ориентированное программирование: с нуля к SOLID и MVC””

Объектно-ориентированное программирование: с нуля к SOLID и MVC

Базовая книга по приёмам объектно-ориентированного программирования (ООП) с примерами на языке C++. Разобраны основные принципы и техники разработки объектно-ориентированных программ, объяснены шаблоны проектирования (паттерны), особое внимание уделено принципам SOLID, архитектуре MVC (модель-представление-контроллер) и особенностям работы с ООП в С++.

Для начинающих разработчиков, специалистов по C++, студентов вузов

MVC и SOLID для уверенного понимания паттернов проектирования

Вот уже более 30 лет объектно-ориентированное программирование (ООП) остаётся основной парадигмой разработки программного обеспечения, доминирующей в академической информатике и в прикладном программировании на C++, Java, C#, Python и других языках, лидирующих в рейтинге TIOBE. При этом многие современные книги по ООП представляют собой огромные фолианты и не подходят для базового изучения этой темы.

Данная книга, написанная на основе многолетних наработок автора в преподавании и индустрии программного обеспечения, раскрывает тему ООП максимально доступно и просто. Кроме базовых основ ООП, книга описывает паттерны проектирования, принципы SOLID, архитектуру MVC (модель-представление-контроллер), а также затрагивает особенности ООП в языке С++.
Материал подходит в качестве вводной книги по ООП. Книга будет интересна студентам, осваивающим C++ и ООП, но и опытные специалисты тоже найдут в ней интересные детали об использовании паттернов проектирования.

Вы узнаете, как:

– инкапсулировать данные и код в объекты,
– работать с объектами в С++ и других востребованных языках,
– управлять композицией и взаимодействием объектов,
– управлять временем жизни объектов,
– использовать паттерны проектирования,
– применять принципы SOLID,
– создавать событийно-ориентированные приложения,
– решать задачи с помощью архитектуры MVC.

Книгу “Объектно-ориентированное программирование: с нуля к SOLID и MVC” можно купить со скидкой в интернет-магазине издательства “БХВ“.

Посвящения и благодарности……………………………………………………………… 5

Введение……………………………………………………………………………………………… 7

Некоторые обозначения и сокращения………………………………………………………………………………… 7

Что это и для кого…………………………………………………………………………………………………………………… 7

Зачем это всё…………………………………………………………………………………………………………………………… 8

Методическая проблема……………………………………………………………………………………………………….. 9

Глава 1. Основы ООП……………………………………………………………………….. 11

1.1. Основные понятия…………………………………………………………………………………………………………. 11

1.2. Хватит бла-бла-бла, давайте уже код!………………………………………………………………………… 16

1.3. Определение классов и создание объектов…………………………………………………………………. 17

1.4. Работа с объектами……………………………………………………………………………………………………….. 20

1.5. Методы…………………………………………………………………………………………………………………………… 23

1.6. Сокрытие свойств и методов………………………………………………………………………………………… 26

1.7. Конструкторы и деструкторы, жизненный цикл объектов………………………………………… 29

1.8. Наследование………………………………………………………………………………………………………………… 38

1.9. Расширение и изменение объектов при наследовании………………………………………………. 45

1.10. Композиция………………………………………………………………………………………………………………….. 46

1.11. Глубокое и поверхностное копирование, value- и reference-семантика…………………. 51

1.12. Наследование, композиция, агрегация, ассоциация, зависимость…………………………. 52

1.13. Диаграммы классов, последовательностей, состояний и прочий UML…………………. 55

1.14. Композиция или наследование?………………………………………………………………………………… 60

1.15. Помещение объектов в переменные различных типов…………………………………………….. 63

1.16. Полиморфизм……………………………………………………………………………………………………………….. 66

1.17. Приведение типов………………………………………………………………………………………………………… 74

1.18. Передача и возврат объектов из функций в C++………………………………………………………. 83

1.19. Проблемы работы с памятью и не только, в C++ и не только…………………………………. 87

1.20. Технологии и практики управления долгоживущими объектами в C++………………… 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. Примеси (миксины, mixins)…………………………………………………………………………………………. 115

2.9. Singleton………………………………………………………………………………………………………………………… 116

2.10. Chain of Responsibility……………………………………………………………………………………………….. 119

2.11. Делегирование, объектная шизофрения………………………………………………………………….. 126

2.12. Strategy……………………………………………………………………………………………………………………….. 130

2.13. Adapter……………………………………………………………………………………………………………………….. 135

2.14. Iterator………………………………………………………………………………………………………………………… 142

2.15. Шаблоны C++. Осторожно по минному полю………………………………………………………… 150

2.16. Стандартные контейнеры STL…………………………………………………………………………………. 152

2.17. Decorator…………………………………………………………………………………………………………………….. 154

2.18. Proxy…………………………………………………………………………………………………………………………… 160

2.19. Composite…………………………………………………………………………………………………………………… 163

2.20. Observer сам по себе и как пример mixin…………………………………………………………………. 167

2.21. Command…………………………………………………………………………………………………………………… 171

2.22. Factory Method, Abstract Factory……………………………………………………………………………… 179

2.23. Abstract Factory еще раз……………………………………………………………………………………………. 187

2.24. Memento…………………………………………………………………………………………………………………….. 190

2.25. Bridge………………………………………………………………………………………………………………………….. 193

2.26. Visitor………………………………………………………………………………………………………………………….. 201

2.27. Одинарная и двойная диспетчеризация………………………………………………………………….. 209

2.28. SOLID-принципы……………………………………………………………………………………………………….. 211

2.29. Объектная интроспекция и рефлексия…………………………………………………………………….. 221

2.30. Событийно-управляемое приложение: событие, типы событий, сообщение, обработчик, механизм обмена сообщениями, очередь сообщений…………………………………………………………………………………………………… 225

2.31. Архитектура Model-View-Controller (MVC) и ее варианты.
Самый простой способ ее нарушить и исправить………………………………………………….. 237

Приложение. Ликбез по переменным и указателям в C++………………… 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

Список литературы………………………………………………………………………….. 265

Предметный указатель…………………………………………………………………….. 267

Макеев Григорий Анатольевич

Макеев Григорий Анатольевич, кандидат технических наук, практикующий инженер-программист, руководитель группы разработчиков, занимающейся разработкой наукоёмкого инженерного ПО, преподаватель Уфимского университета науки и технологий. Обладает почти 20-летним профессиональным стажем. На протяжении преподавательской карьеры вел дисциплины, связанные с объектно-ориентированным и функциональным программированием, а также с базами данных.

Summary
Aggregate Rating
3 based on 1 votes
Добавить комментарий