چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

The Object-Oriented Thought Process

Weisfeld, Matt Weisfeld

قیمت نهایی

۴۴٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۰٪ تخفیف
  • تخفیف زمان‌دار−۵٬۰۰۰ تومان

۵٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

سال انتشار
۲۰۱۳
فرمت
PDF
زبان
انگلیسی
حجم فایل
۹٫۰ مگابایت

دربارهٔ کتاب

The Object-Oriented Thought Process, Fourth Edition An introduction to object-oriented concepts for developers looking to master modern application practices 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. 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.” Written by a developer for developers who want to make the leap to object-oriented technologies, The Object-Oriented Thought Process 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. 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. “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 The Object-Oriented Thought Process .” –Bill McCarty, author of Java Distributed Objects, and Object-Oriented Design in Java Contents at a Glance 1 Introduction to Object-Oriented Concepts 2 How to Think in Terms of Objects 3 Advanced Object-Oriented Concepts 4 The Anatomy of a Class 5 Class Design Guidelines 6 Designing with Objects 7 Mastering Inheritance and Composition 8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes 9 Building Objects and Object-Oriented Design 10 Creating Object Models 11 Objects and Portable Data: XML and JSON 12 Persistent Objects: Serialization, Marshaling, and Relational Databases 13 Objects in Web Services, Mobile Apps, and Hybrids 14 Objects and Client/Server Applications 15 Design Patterns Об авторе......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 **The Object-Oriented Thought Process, Fourth Edition__An introduction to object-oriented concepts for developers looking to master modern application practices__**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.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."Written by a developer for developers who want to make the leap to object-oriented technologies,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.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."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." -Bill McCarty, author of Java Distributed Objects, and Object-Oriented Design in Java**Contents at a Glance**1 Introduction to Object-Oriented Concepts2 How to Think in Terms of Objects3 Advanced Object-Oriented Concepts4 The Anatomy of a Class5 Class Design Guidelines6 Designing with Objects7 Mastering Inheritance and Composition8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes9 Building Objects and Object-Oriented Design10 Creating Object Models11 Objects and Portable Data: XML and JSON12 Persistent Objects: Serialization, Marshaling, and Relational Databases13 Objects in Web Services, Mobile Apps, and Hybrids14 Objects and Client/Server Applications15 Design Patterns 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 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

قیمت نهایی

۴۴٬۰۰۰ تومان