Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
The Object-Oriented Thought ProcessMarch 2013
Publisher:
  • Addison-Wesley Professional
ISBN:978-0-321-86127-6
Published:23 March 2013
Pages:
336
Skip Bibliometrics Section
Reflects downloads up to 11 Feb 2025Bibliometrics
Skip Abstract Section
Abstract

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 reusebut 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 constantno 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 softwareas all programmers shouldmust 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 Weisfelds 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 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

Contributors
  • Allen-Bradley Company

Reviews

Alexandre Bergel

It is generally acknowledged that the successful development of a software product essentially depends on the process. Although important, technical considerations often play a minor role in producing successful software. The development process rationalizes the series of actions and decisions to make the end product meet the initial goals. This book aims to guide the reader through the main concepts of object orientation, including encapsulation, inheritance, and composition. The book begins with elementary definitions of objects and classes before moving on to advanced topics such as design guidelines, serialization, persistence, and web services. The book is written in a pleasant fashion, making it easy to read. Most topics are illustrated with comprehensible scholarly examples. Having said that, I admit that I found the book rather disappointing. There are three main reasons for this. First, it is written as if it were a transcript of hand-waving discussions. For example, a class is a factory of objects, and not really a blueprint as the author states (page 17). The central notion of polymorphism (page 28) is unfortunately blurred into contrived examples without making the point clear. Polymorphism refers to the ability of a variable to hold object references that share a common interface. The circle, shape, and stack examples illustrate this point, but the section fails to present polymorphism in a crystal-clear fashion. On page 145, which is about abstract class, the author states: "An abstract class is a class that contains one or more methods that do not have any implementation provided." This is inexact. An abstract class is a class that is considered incomplete by its author. As a consequence, an abstract class may indeed have implementations for all its methods (as was the case in an early version of JUnit, for example). The second weak point of the book is its incompleteness. Whereas the benefits of inheritance and the use of frameworks are discussed at length, method overriding and super calls are not even mentioned. How can a framework be reasonably designed without mentioning these points__?__ Unit testing is also not mentioned. It is widely acknowledged that clear design principles are hard to stick to without unit testing. The third and maybe weakest point is the lack of a clear takeaway. The book offers many interesting discussions and examples about the relevance of thinking first about encapsulation, responsibilities, and promoting clear and efficient object design. However, these topics have been presented in many other books. The book does not specify any good and easy-to-apply techniques for promoting object-oriented design, which is still the source of many debates. Although the author has made significant and lengthy efforts in this book (already in its 4th edition, covering nontrivial topics), I would not consider it an absolute must-read if one were looking for ways to become a better programmer. More reviews about this item: Amazon , GoodReads , Computing Now Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations