The Object-Oriented Thought Process, Fourth EditionAn 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
I took the opportunity of the COVID quarantine to teach myself c# using various online courses.
I have written a number of c# applications since then and by and large understood all the concepts. But this book wrapped it all up and brought a bunch of the lurking concepts into focus. The aha moments where suddenly it all started to fall into place. Small things but Matt has a nice way of explaining it that made the bigger picture much clearer.
If I had read this book in 2020 it would have not béen as useful. Now, having written some applications it was perfect timing.
In 2020 I was 60. Never too late to start !
(I am a non OO programmer though. C, assembler and many others)
Great Resource
Published by Thriftbooks.com User , 18 years ago
I went about learning Java backwards. I didn't go to College and had no basis or reference for programming procedure. I did Java programming for 2 years before I bought this book and now I find myself doing constant refactoring. Having programming experience at the time I bought this book, I did notice that I learned a lot easier because I could identify with the topic after developing for a few years already. I was however able to use this book as a reference when helping others transition from procedural programming to OO programming. The greatest aspect of this book, is that it is good for someone who is already a programmer looking to solidify or enhance their skill set but it would also benefit people just starting to program (Then I highly recommend it!) or learning the theory of OO programming. For instance, my friend in Philosophy PhD grad school had to take a class on Lisp. After that class he read The Object Oriented Thought Process just to have the knowledge - and he still has never programmed a line of code. Kudos to Matt Weisfeld on making a great resource for understanding and more importantly implementing OO programming in a way that you'll remember forever.
Intro to OO Instructors - Adopt this text!
Published by Thriftbooks.com User , 21 years ago
In my opinion, this book belongs right up there with the classic "GoF" Design Patterns book on any software engineers bookshelf - it's just not as well known. I use this book as the text for an introductory OO class I teach at a nearby college. As far as I know, there is no other book out there which really introduces the subject of "Thinking OO"; yet thinking in objects is critical if students & software practitioners are going to understand the advantages of OO languages, design, etc. The advantage of this book is that it is very well written; the authors have considered their intended audience carefully. Some of my students are new to software, and others have been writing procedural code for 20+ years. The experienced programmers have the hardest time switching paradigms, so when they tell you the book really helped them (finally) understand OO principles, it is noteworthy. Some may be critical of the book because lacks academic rigor; but if your objective is for your students to comprehend & embrace OO, you need to adopt this book for your introductory OO course.
Thank God, Finally I Get OOP
Published by Thriftbooks.com User , 21 years ago
I can program in C, Assembler, Motorola 68HC11 assembly language and have never been able to shift my thinking from procedural to object oriented programming. I've bought 8 books on Java and C++, trying to understand OOP (Object Oriented Programming) and never got the hang of it. I also couldn't get a straight answer from any supposed C++/Java programmers as to what OOP was. Finally, after reading this book it's cleard up my issues with OOP. With my other books by Deitel, Schlidt, and SAMS, I've lost interest in trying to figure out their meaning of OOP. This book I've shifted my thought process in two hours. This is by far the most useful book I've ever read on any aspect of programming. I reccomend this book to anyone starting out programming or trying to shift from procedural to an OOP language. I wouldn't worry that it has Java examples if you're trying to learn C++, he teachs a thought process and different view point. All I can say is "Thank God this finally makes sense to me!"
Undoes bad habits
Published by Thriftbooks.com User , 23 years ago
After reading this book I realized why so many development projects that use object-oriented tools and techniques fail - they are staffed by developers who think in the traditional terms of procedures and functions. In retrospect it dawned on me that there is a high probability that developers who started out with procedural languages view objects as functions. This book provides a compass that will point developers in the right direction by breaking mental paradigms. It does so by getting them to think in terms of states instead of functions, and objects as components, independent of the application being developed, with well-defined interfaces and properties that can be used to create services. I personally learned a lot about object-orientation, which I can apply to analysis. This book is a quick and easy read, and packs a lot of information and concepts between its covers. I highly recommend it and give it five stars for clarity and content.
Must buy!
Published by Thriftbooks.com User , 23 years ago
This book is only 200 pages but it is an EXCELLENT book for people that are trying to get a better understanding of Object-Oriented concepts! Most of the Java books that I have read don't cover the type of information found in this book. And the best part about it, is that it is very easy to read. After reading through most of the chapters, I have found that I was able to pick the book up again after a year....read a few select chapters again and get more out of it!It really helps you to achieve a solid understanding.
ThriftBooks sells millions of used books at the lowest everyday prices. We personally assess every book's quality and offer rare, out-of-print treasures. We deliver the joy of reading in recyclable packaging with free standard shipping on US orders over $15. ThriftBooks.com. Read more. Spend less.