Home > Store > Software Development & Management > Object Technology

larger cover

Add To My Wish List

Object-Oriented Thought Process, The, 4th Edition

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Downloads
  • Extras
  • Reviews
  • Sample Content

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

Customer Reviews

4 of 4 people found the following review helpful
4.0 out of 5 stars Many excellent chapters, Elvis leaves the building at times, April 14, 2013
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
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 3 people found the following review helpful
3.0 out of 5 stars Not a bad purchase, but not a good one, April 21, 2013
By 
Joshua Grant (San Diego, CA) - See all my reviews
(REAL NAME)   
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
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars I recommend this book., May 6, 2013
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 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)

 
Best Value

Book + eBook Bundle  $80.98  $48.59

Book Price $35.99
eBook Price $12.60
eBook formats included

Buy

This book includes free shipping!

Buy

Book  $44.99  $35.99

Usually ships in 24 hours.

This book includes free shipping!

Buy

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:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe 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.

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

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.