Объектно-ориентированное мышление. 🔍
Мэтт Вайсфельд; [пер. с англ. В. Черник] Питер, Библиотека программиста, 4, 2014
Russian [ru] · English [en] · PDF · 22.9MB · 2014 · 📘 Book (non-fiction) · 🚀/lgli/lgrs/nexusstc/zlib · Save
description
Объектно-ориентированное программирование - это фундамент современных языков программирования, включая C++, Java, C#, Visual Basic, .NET, Ruby и Objective-C. Кроме того, объекты лежат в основе многих веб-технологий, например javascript, Python и PHP.
Объектно-ориентированное программирование обеспечивает правильные методики проектирования, переносимость кода и его повторное использование, однако для того, чтобы все это полностью понять, необходимо изменить свое мышление. Разработчики, являющиеся новичками в сфере объектно-ориентированного программирования, не должны поддаваться искушению перейти непосредственно к конкретному языку программирования (например, Objective-C, VB .NET, C++, C#, .NET или Java) или моделирования (например, UML), а вместо этого сначала уделить время освоению того, что автор книги Мэтт Вайсфельд называет объектно-ориентированным мышлением.
Несмотря на то, что технологии программирования изменяются и эволюционируют с годами, объектно-ориентированные концепции остаются прежними - при этом неважно, какой именно является платформа.
Alternative filename
lgli/Мэтт Вайсфельд;Объектно-ориентированное мышление;;Библиотека программиста;Питер;2014;978-5-496-00793-1;;.pdf
Alternative filename
lgrsnf/Мэтт Вайсфельд;Объектно-ориентированное мышление;;Библиотека программиста;Питер;2014;978-5-496-00793-1;;.pdf
Alternative filename
zlib/Computers/Programming/Мэтт Вайсфельд/Объектно-ориентированное мышление_2370697.pdf
Alternative title
Object-Oriented Thought Process, The (Developer's Library)
Alternative title
The Object-Oriented Thought Process
Alternative author
Weisfeld, Matt Weisfeld
Alternative author
Matt Weisfeld Weisfeld
Alternative author
Matt A. Weisfeld
Alternative author
Вайсфельд, Мэтт
Alternative publisher
Addison-Wesley Longman, Incorporated
Alternative publisher
Addison-Wesley Professional
Alternative publisher
Longman Publishing
Alternative publisher
Adobe Press
Alternative publisher
Piter Press
Alternative edition
Developer's library, Fourth edition, Upper Saddle River, NJ, 2013
Alternative edition
Pearson Education Limited (US titles), [N.p.], 2013
Alternative edition
Библиотечка программиста, Москва, Russia, 2014
Alternative edition
United States, United States of America
Alternative edition
Russia, Russian Federation
Alternative edition
Mar 23, 2013
Alternative edition
4, 2013
metadata comments
lg1202356
metadata comments
{"edition":"4","isbns":["0321861272","5496007933","9780321861276","9785496007931"],"last_page":304,"publisher":"Питер","series":"Библиотека программиста"}
metadata comments
Source title: The Object-Oriented Thought Process (Developer's Library)
metadata comments
Библиогр. в конце гл.
Пер.: Weisfeld, Matt The Object-Oriented Thought Process 4-th ed. Upper Saddle River, NJ [etc.] : Addison-Wesley, cop. 2013 978-0321861276
metadata comments
РГБ
metadata comments
Russian State Library [rgb] MARC:
=001 007507902
=005 20140626094334.0
=008 140618s2014\\\\ru\\\\\\\\\\\\000\0\rus\d
=017 \\ $a 14-44836 $b RuMoRKP
=020 \\ $a 978-5-496-00793-1
=040 \\ $a RuMoRGB $b rus $e rcr
=041 1\ $a rus $h eng
=084 \\ $a З973.2-018.2,0 $2 rubbk
=100 1\ $a Вайсфельд, Мэтт
=245 00 $a Объектно-ориентированное мышление $h [Текст] : $b [12+] $c Мэтт Вайсфельд ; [пер. с англ. В. Черник]
=260 \\ $a Москва $b Питер $c 2014
=300 \\ $a 303 с. $b ил., табл. $c 24 см
=336 \\ $a текст (text) $b txt $2 rdacontent
=337 \\ $a неопосредованный (unmediated) $b n $2 rdamedia
=338 \\ $a том (volume) $b nc $2 rdacarrier
=490 0\ $a Библиотечка программиста
=504 \\ $a Библиогр. в конце гл.
=534 \\ $p Пер.: $a Weisfeld, Matt $t The Object-Oriented Thought Process $b 4-th ed. $c Upper Saddle River, NJ [etc.] : Addison-Wesley, cop. 2013 $z 978-0321861276
=650 \7 $a Вычислительная техника -- Вычислительные машины электронные цифровые -- Программирование -- Объектно-ориентированное программирование $2 rubbk
=650 \7 $a Объектно-ориентированное программирование(компьют.) $0 RU\NLR\AUTH\661327841 $2 nlr_sh
=852 \\ $a РГБ $b FB $j 2 14-40/162 $x 90
=852 \\ $a РГБ $b FB $j 2 14-40/163 $x 90
Alternative description
Об авторе......Page 13
От издательства......Page 14
Введение......Page 15
Целевая аудитория......Page 17
Подход, использованный в этой книге......Page 18
Соглашения, принятые в книге......Page 19
Фундаментальные концепции......Page 20
Объекты и унаследованные системы......Page 21
Процедурное программирование в сравнении с объектно-ориентированным......Page 23
Объектно-ориентированное программирование......Page 27
Поведения объектов......Page 28
Что такое класс?......Page 32
Создание объектов......Page 33
Сообщения......Page 35
Инкапсуляция и сокрытие данных......Page 36
Интерфейсы......Page 37
Реальный пример парадигмы «интерфейс/реализация»......Page 38
Модель парадигмы «интерфейс/реализация»......Page 39
Наследование......Page 40
Суперклассы и подклассы......Page 41
Абстрагирование......Page 42
Отношения «является экземпляром»......Page 43
Полиморфизм......Page 44
Абстрагирование......Page 47
Примеры кода, использованного в этой главе......Page 48
Глава 2. Как мыслить объектно......Page 51
Разница между интерфейсом и реализацией......Page 52
Реализация......Page 54
Пример интерфейса/реализации......Page 55
Использование абстрактного мышления при проектировании классов......Page 59
Обеспечение самого минимального интерфейса пользователя из возможных......Page 62
Определение пользователей......Page 63
Определение открытых интерфейсов......Page 64
Определение реализации......Page 65
Ссылки......Page 66
Конструкторы......Page 67
Конструктор по умолчанию......Page 68
Использование множественных конструкторов......Page 69
Перегрузка методов......Page 70
Использование UML для моделирования классов......Page 71
Проектирование конструкторов......Page 73
Игнорирование проблем......Page 74
Проверка на предмет проблем и попытка устранить неполадки......Page 75
Выбрасывание исключений......Page 76
Локальные атрибуты......Page 78
Атрибуты объектов......Page 80
Атрибуты классов......Page 82
Перегрузка операторов......Page 83
Множественное наследование......Page 84
Операции с объектами......Page 85
Ссылки......Page 86
Примеры кода, использованного в этой главе......Page 87
Имя класса......Page 88
Атрибуты......Page 90
Конструкторы......Page 92
Методы доступа......Page 94
Методы открытых интерфейсов......Page 96
Ссылки......Page 97
Примеры кода, использованного в этой главе......Page 98
Моделирование реальных систем......Page 100
Минимальный открытый интерфейс......Page 101
Сокрытие реализации......Page 102
Проектирование надежных конструкторов (и, возможно, деструкторов)......Page 103
Документирование класса и использование комментариев......Page 104
Создание объектов с прицелом на взаимодействие......Page 105
Делаем имена описательными......Page 106
Абстрагирование непереносимого кода......Page 107
Сведение области видимости к минимуму......Page 108
Класс должен отвечать за себя......Page 109
Использование итерации в процессе разработки......Page 111
Тестирование интерфейса......Page 112
Использование постоянства объектов......Page 114
Ссылки......Page 115
Примеры кода, использованного в этой главе......Page 116
Руководство по проектированию......Page 117
Составление технического задания......Page 121
Разработка прототипа интерфейса пользователя......Page 122
Прототипирование интерфейса пользователя......Page 123
Объектные обертки......Page 124
Структурированный код......Page 125
Обертывание структурированного кода......Page 126
Обертывание непереносимого кода......Page 128
Обертывание существующих классов......Page 129
Ссылки......Page 130
Повторное использование объектов......Page 131
Наследование......Page 133
Обобщение и конкретизация......Page 135
Проектные решения......Page 136
Композиция......Page 138
Почему инкапсуляция является фундаментальной объектно-ориентированной концепцией......Page 141
Как наследование ослабляет инкапсуляцию......Page 142
Ответственность объектов......Page 144
Абстрактные классы, виртуальные методы и протоколы......Page 148
Ссылки......Page 150
Примеры кода, использованного в этой главе......Page 151
Код: использовать повторно или нет?......Page 153
Что такое фреймворк?......Page 154
Что такое контракт?......Page 156
Абстрактные классы......Page 157
Интерфейсы......Page 160
Связываем все воедино......Page 162
Заключение контракта......Page 165
Проблема, касающаяся электронного бизнеса......Page 168
Подход без повторного использования кода......Page 169
Объектная модель UML......Page 172
Резюме......Page 176
Примеры кода, использованного в этой главе......Page 177
Отношения композиции......Page 180
Поэтапное создание......Page 182
Типы композиции......Page 184
Агрегации......Page 185
Использование ассоциаций в сочетании с агрегациями......Page 186
Избегание зависимостей......Page 187
Кардинальность......Page 188
Ассоциации, включающие множественные объекты......Page 190
Связываем все воедино: пример......Page 191
Ссылки......Page 193
Что такое UML?......Page 194
Структура диаграммы класса......Page 195
Методы......Page 197
Обозначения доступа......Page 198
Наследование......Page 199
Интерфейсы......Page 200
Композиция......Page 201
Ассоциации......Page 202
Кардинальность......Page 204
Ссылки......Page 206
Глава 11. Объекты и переносимые данные: XML и JSON......Page 208
Переносимые данные......Page 209
XML......Page 210
XML в противопоставлении с HTML......Page 211
XML и объектно-ориентированные языки программирования......Page 212
Обмен данными между двумя компаниями......Page 213
Валидация документа с определением типа документа (DTD)......Page 214
Включение определения типа документа в XML-документ......Page 216
Использование CSS......Page 221
JavaScript Object Notation (JSON)......Page 223
Ссылки......Page 228
Основные положения, касающиеся постоянных объектов......Page 229
Сохранение объекта в плоском файле......Page 231
Сериализация файла......Page 232
Еще раз о реализации и интерфейсе......Page 234
А как насчет методов?......Page 235
Использование XML в процессе сериализации......Page 236
Запись в реляционную базу данных......Page 238
Ссылки......Page 242
Примеры кода, использованного в этой главе......Page 243
Эволюция распределенных вычислений......Page 246
Основанные на объектах языки сценариев......Page 247
Пример валидации с использованием JavaScript......Page 250
JavaScript-объекты......Page 253
Элементы управления веб-страницы......Page 255
Аудиопроигрыватели......Page 256
Flash......Page 257
Распределенные объекты и корпоративные вычисления......Page 258
Common Object Request Broker Architecture (CORBA)......Page 259
Определение веб-служб......Page 264
Код веб-служб......Page 268
Representational State Transfer (ReST)......Page 269
Ссылки......Page 270
Проприетарный подход......Page 272
Сериализованный объектный код......Page 273
Клиентский код......Page 274
Серверный код......Page 276
Выполнение примера «клиент-сервер» на основе проприетарного подхода......Page 277
Непроприетарный подход......Page 278
Код определения объектов......Page 279
Клиентский код......Page 280
Серверный код......Page 281
Выполнение примера «клиент-сервер» на основе непроприетарного подхода......Page 283
Примеры кода, использованного в этой главе......Page 284
Глава 15. Шаблоны проектирования......Page 285
Зачем нужны шаблоны проектирования?......Page 286
Парадигма «Модель/Вид/Контроллер» в Smalltalk......Page 287
Порождающие шаблоны......Page 289
Структурные шаблоны......Page 294
Поведенческие шаблоны......Page 296
Антишаблоны......Page 297
Примеры кода, использованного в этой главе......Page 299
Alternative description
<p class="null1">The Object-Oriented Thought Process, Fourth Edition</p>
<p class="null2">An introduction to object-oriented concepts for developers looking to master modern application practices</p>
<p>Object-oriented programming (OOP) is the foundation of modern programming languages, including C++, Java, C#, Visual Basic .NET, Ruby, and Objective-C. Objects also form the basis for many web technologies such as JavaScript, Python, and PHP.</p>
<p>It is of vital importance to learn the fundamental concepts of object orientation before starting to use object-oriented development environments. OOP promotes good design practices, code portability, and reuse–but it requires a shift in thinking to be fully understood. Programmers new to OOP should resist the temptation to jump directly into a particular programming language (such as Objective-C, VB .NET, C++, C# .NET, or Java) or a modeling language (such as UML), and instead first take the time to learn what author Matt Weisfeld calls “the object-oriented thought process.”</p>
<p>Written by a developer for developers who want to make the leap to object-oriented technologies, <em>The Object-Oriented Thought Process</em> provides a solutions-oriented approach to object-oriented programming. Readers will learn to understand the proper uses of inheritance and composition, the difference between aggregation and association, and the important distinction between interfaces and implementations.</p>
<p>While programming technologies have been changing and evolving over the years, object-oriented concepts remain a constant–no matter what the platform. This revised edition focuses on interoperability across programming technologies, whether you are using objects in traditional application design, in XML-based data transactions, in web page development, in mobile apps, or in any modern programming environment.</p>
<p>“Programmers who aim to create high quality software–as all programmers should–must learn the varied subtleties of the familiar yet not so familiar beasts called objects and classes. Doing so entails careful study of books such as Matt Weisfeld’s <em>The Object-Oriented Thought Process</em>.”</p>
<p>–Bill McCarty, author of Java Distributed Objects, and Object-Oriented Design in Java</p>
<p class="null1">Contents at a Glance</p>
<p>1 Introduction to Object-Oriented Concepts<br>
2 How to Think in Terms of Objects<br>
3 Advanced Object-Oriented Concepts<br>
4 The Anatomy of a Class<br>
5 Class Design Guidelines<br>
6 Designing with Objects<br>
7 Mastering Inheritance and Composition<br>
8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes<br>
9 Building Objects and Object-Oriented Design<br>
10 Creating Object Models<br>
11 Objects and Portable Data: XML and JSON<br>
12 Persistent Objects: Serialization, Marshaling, and Relational Databases<br>
13 Objects in Web Services, Mobile Apps, and Hybrids<br>
14 Objects and Client/Server Applications<br>
15 Design Patterns</p>
Alternative description
This work is an introduction to object-oriented concepts for developers looking to master modern application practices. Readers will learn to understand object-oriented design with inheritance or composition, object aggregation and association, and the difference between interfaces and implementations. Written by a developer for students who want to make the leap to object-oriented technologies, The Object-Oriented Thought Process, 4/e provides a solutions-oriented approach to object-oriented programming. Students will learn to understand the proper uses of inheritance and composition, the difference between aggregation and association, and the important distinction between interfaces and implementations. While programming technologies have been changing and evolving over the years, object-oriented concepts remain a constant-no matter what the platform. This revised edition focuses on interoperability across programming technologies, whether students are using objects in traditional application design, in XML-based data transactions, in web page development, in mobile apps, or in any modern programming environment
Alternative description
Объектно-ориентированное программирование — это фундамент современных языков программирования, включая C++, Java, C#, Visual Basic, .NET, Ruby и Objective-C. Кроме того, объекты лежат в основе многих веб-технологий, например JavaScript, Python и PHP.
Объектно-ориентированное программирование обеспечивает правильные методики проектирования, переносимость кода и его повторное использование, однако для того, чтобы все это полностью понять, необходимо изменить свое мышление. Разработчики, являющиеся новичками в сфере объектно-ориентированного программирования, не должны поддаваться искушению перейти непосредственно к конкретному языку программирования (например, Objective-C, VB .NET, C++, C#, .NET или Java) или моделирования (например, UML), а вместо этого сначала уделить время освоению того, что автор книги Мэтт Вайсфельд называет объектно-ориентированным мышлением.
Несмотря на то что технологии программирования изменяются и эволюционируют с годами, объектно-ориентированные концепции остаются прежними — при этом не важно, какой именно является платформа.
Alternative description
While programming technologies have been changing and evolving over the years, object-oriented concepts remain a constant--no matter what the platform. Written by a developer for developers who want to make the leap to object-oriented technologies, this book provides a solutions-oriented approach to object-oriented programming. Readers will learn to understand the proper uses of inheritance and composition, the difference between aggregation and association, and the important distinction between interfaces and implementations. This revised edition focuses on interoperability across programming technologies, whether you are using objects in traditional application design, in XML-based data transactions, in Web page development, in mobile apps, or in any modern programming environment.--From publisher description
date open sourced
2014-08-17
Read more…

🐢 Slow downloads

From trusted partners. More information in the FAQ. (might require browser verification — unlimited downloads!)

All download options have the same file, and should be safe to use. That said, always be cautious when downloading files from the internet, especially from sites external to Anna’s Archive. For example, be sure to keep your devices updated.
  • For large files, we recommend using a download manager to prevent interruptions.
    Recommended download managers: Motrix
  • You will need an ebook or PDF reader to open the file, depending on the file format.
    Recommended ebook readers: Anna’s Archive online viewer, ReadEra, and Calibre
  • Use online tools to convert between formats.
    Recommended conversion tools: CloudConvert and PrintFriendly
  • You can send both PDF and EPUB files to your Kindle or Kobo eReader.
    Recommended tools: Amazon‘s “Send to Kindle” and djazz‘s “Send to Kobo/Kindle”
  • Support authors and libraries
    ✍️ If you like this and can afford it, consider buying the original, or supporting the authors directly.
    📚 If this is available at your local library, consider borrowing it for free there.