Home > Store > Software Development & Management > Object Technology
Object-Oriented Thought Process, The, 4th Edition
- By Matt Weisfeld
- Published Mar 13, 2013 by Addison-Wesley Professional. Part of the Developer's Library series.
- Copyright 2013
- Dimensions: 7" x 9"
- Pages: 336
- Edition: 4th
- Book
- ISBN-10: 0-321-86127-2
- ISBN-13: 978-0-321-86127-6
Register your product to gain access to bonus material or receive a coupon.
Product Author Bios
Matt Weisfeld is a college professor, software developer, and author based in Cleveland, Ohio. Prior to teaching college full time, he spent 20 years in the information technology industry as a software developer, entrepreneur, and adjunct professor. Weisfeld holds an MS in computer science and an MBA. Besides the first three editions of The Object-Oriented Thought Process, he has authored two other software development books and published many articles in magazines and journals, such as developer.com, Dr. Dobb’s Journal, The C/C++ Users Journal, Software Development Magazine, Java Report, and the international journal Project Management.
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
Downloads
Download free code files associated with The Object-Oriented Thought Process here
|
4 of 4 people found the following review helpful
Amazon Verified Purchase(What's this?)
This review is from: The Object-Oriented Thought Process (4th Edition) (Developer's Library) (Paperback)
The best audience for this book is a programmer who approaches coding procedurally and needs to be led in the direction of thinking object oriented. In fact, a number of chapters are flat out some of the best and clearest introductory material I've read on OOP. Some of the middle chapters of the book are just rearranged words saying the same thing in circles. You'll read it thinking something new will come of it, but it doesn't. The latter part of the book are misc chapters giving a short overview or discussion of things like UML, XML, JSON, Serialization, Marshaling, Web Services, and Design Patterns, and some of that is new in this fourth edition. These range from laughably cursory to excellent at times. Much of that material is obviously for beginners. The chapter on design patterns is probably the best introduction on the subject I've read, but it does suffer from the same problems as the rest of the book, as I'll note below.If you read the third edition, the same... Read more
2 of 3 people found the following review helpful
By
Amazon Verified Purchase(What's this?)
This review is from: The Object-Oriented Thought Process (4th Edition) (Developer's Library) (Paperback)
If you are familiar with the basics of object-oriented programming this book is not for you. Based on the title I assumed the book was going to go into more detail on the design side of object-oriented programming.I did not give the book three stars because it was not correct for my experience level, the rating is due to the enormous amount of repetition. A lot of information is available for free on the internet, I purchase books because I like to have access to high quality consistent information. While the quality of some parts of this book are great, it is not consistently high quality. I found myself thinking "Why is this section here? Didn't I just read this?" If you are very new to object-oriented programming and you do not know what encapsulation, inheritance and polymorhpism are you would do just as well reading various internet tutorials as you would reading this book. If you are just starting out I would not say you are wasting your money buying this... Read more By KR Pen "KR Pen" (Salt Lake City, Utah USA) - See all my reviews
Amazon Verified Purchase(What's this?)
This review is from: The Object-Oriented Thought Process (4th Edition) (Developer's Library) (Paperback)
A good book to read before getting into OOP. I wished I had this book before I got into programming.
|
› See all 4 customer reviews...
Online Sample Chapter
Advanced Object-Oriented Concepts
Table of Contents
1 Introduction to Object-Oriented Concepts
The Fundamental Concepts
Objects and Legacy Systems
Procedural Versus OO Programming
Moving from Procedural to Object-Oriented Development
Procedural Programming
OO Programming
What Exactly Is an Object?
Object Data
Object Behaviors
What Exactly Is a Class?
Creating Objects
Attributes
Methods
Messages
Using Class Diagrams as a Visual Tool
Encapsulation and Data Hiding
Interfaces
Implementations
A Real-World Example of the Interface/Implementation Paradigm
A Model of the Interface/Implementation Paradigm
Inheritance
Superclasses and Subclasses
Abstraction
Is-a Relationships
Polymorphism
Composition
Abstraction
Has-a Relationships
2 How to Think in Terms of Objects
Knowing the Difference Between the Interface and the Implementation
The Interface
The Implementation
An Interface/Implementation Example
Using Abstract Thinking When Designing Interfaces
Providing the Absolute Minimal User Interface Possible
Determining the Users
Object Behavior
Environmental Constraints
Identifying the Public Interfaces
Identifying the Implementation
3 Advanced Object-Oriented Concepts
Constructors
When Is a Constructor Called?
What’s Inside a Constructor?
The Default Constructor
Using Multiple Constructors
The Design of Constructors
Error Handling
Ignoring the Problem
Checking for Problems and Aborting the Application
Checking for Problems and Attempting to Recover
Throwing an Exception
The Importance of Scope
Local Attributes
Object Attributes
Class Attributes
Operator Overloading
Multiple Inheritance
Object Operations
4 The Anatomy of a Class
The Name of the Class
Comments
Attributes
Constructors
Accessors
Public Interface Methods
Private Implementation Methods
5 Class Design Guidelines
Modeling Real-World Systems
Identifying the Public Interfaces
The Minimum Public Interface
Hiding the Implementation
Designing Robust Constructors (and Perhaps Destructors)
Designing Error Handling into a Class
Documenting a Class and Using Comments
Building Objects with the Intent to Cooperate
Designing with Reuse in Mind
Designing with Extensibility in Mind
Making Names Descriptive
Abstracting Out Nonportable Code
Providing a Way to Copy and Compare Objects
Keeping the Scope as Small as Possible
A Class Should Be Responsible for Itself
Designing with Maintainability in Mind
Using Iteration in the Development Process
Testing the Interface
Using Object Persistence
Serializing and Marshaling Objects
6 Designing with Objects
Design Guidelines
Performing the Proper Analysis
Developing a Statement of Work
Gathering the Requirements
Developing a Prototype of the User Interface
Identifying the Classes
Determining the Responsibilities of Each Class
Determining How the Classes Collaborate with Each Other
Creating a Class Model to Describe the System
Prototyping the User Interface
Object Wrappers
Structured Code
Wrapping Structured Code
Wrapping Nonportable Code
Wrapping Existing Classes
7 Mastering Inheritance and Composition
Reusing Objects
Inheritance
Generalization and Specialization
Design Decisions
Composition
Representing Composition with UML
Why Encapsulation Is Fundamental to OO
How Inheritance Weakens Encapsulation
A Detailed Example of Polymorphism
Object Responsibility
Abstract Classes, Virtual Methods, and Protocols
8 Frameworks and Reuse: Designing with Interfaces and Abstract Classes
Code: To Reuse or Not to Reuse?
What Is a Framework?
What Is a Contract?
Abstract Classes
Interfaces
Tying It All Together
The Compiler Proof
Making a Contract
System Plug-in Points
An E-Business Example
An E-Business Problem
The Non-Reuse Approach
An E-Business Solution
The UML Object Model
9 Building Objects and Object-Oriented Design
Composition Relationships
Building in Phases
Types of Composition
Aggregations
Associations
Using Associations and Aggregations Together
Avoiding Dependencies
Cardinality
Multiple Object Associations
Optional Associations
Tying It All Together: An Example
10 Creating Object Models
What Is UML?
The Structure of a Class Diagram
Attributes and Methods
Attributes
Methods
Access Designations
Inheritance
Interfaces
Composition
Aggregations
Associations
Cardinality
11 Objects and Portable Data: XML and JSON
Portable Data
The Extensible Markup Language (XML)
XML Versus HTML
XML and Object-Oriented Languages
Sharing Data Between Two Companies
Validating the Document with the Document Type Definition (DTD)
Integrating the DTD into the XML Document
Using Cascading Style Sheets
JavaScript Object Notation (JSON)
12 Persistent Objects: Serialization, Marshaling, and Relational Databases
Persistent Objects Basics
Saving the Object to a Flat File
Serializing a File
Implementation and Interface Revisited
What About the Methods?
Using XML in the Serialization Process
Writing to a Relational Database
Accessing a Relational Database
13 Objects in Web Services, Mobile Apps, and Hybrids
Evolution of Distributed Computing
Object-Based Scripting Languages
A JavaScript Validation Example
Objects in a Web Page
JavaScript Objects
Web Page Controls
Sound Players
Movie Player
Flash
Distributed Objects and the Enterprise
The Common Object Request Broker Architecture (CORBA)
Web Services Definition
Web Services Code
Representational State Transfer (ReST)
14 Objects and Client/Server Applications
Client/Server Approaches
Proprietary Approach
Serialized Object Code
Client Code
Server Code
Running the Proprietary Client/Server Example
Nonproprietary Approach
Object Definition Code
Client Code
Server Code
Running the Nonproprietary Client/Server Example
15 Design Patterns
Why Design Patterns?
Smalltalk’s Model/View/Controller
Types of Design Patterns
Creational Patterns
Structural Patterns
Behavioral Patterns
Antipatterns
Sample Pages
Download the sample pages (includes Chapter 3 and Index)

This book includes free shipping!
This book includes free shipping!
eBook (Watermarked)
$35.99
$28.79
Includes EPUB, MOBI, and PDF
About eBook Formats
This eBook includes the following formats, accessible from your Account page after purchase:
EPUBThe open industry format known for its reflowable content and usability on supported mobile devices.
MOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.
PDFThe popular standard, used most often with the free Adobe® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.
- Request an Instructor or Media review copy.
- Corporate, Academic, and Employee Purchases
- International Buying Options
Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.

