Book description
Object-oriented programming (OOP) is the foundation of modern programming languages, including C++, Java, C#, Visual Basic .NET, Ruby, Objective-C, and Swift. 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 or a modeling language, 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 improve their understanding of 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 the OOP technologies that have survived the past 20 years and remain at its core, with new and expanded coverage of design patterns, avoiding dependencies, and the SOLID principles to help make software designs understandable, flexible, and maintainable.
.
Table of contents
- Cover Page
- About This E-Book
- Half Title Page
- Title Page
- Copyright Page
- Dedication Page
- Contents at a Glance
- Table of Contents
- Acknowledgments
- About the Author
- We Want to Hear from You!
- Reader Services
- Figure Credits
- Introduction
-
1. Introduction to Object-Oriented Concepts
- The Fundamental Concepts
- Objects and Legacy Systems
- Procedural Versus OO Programming
- Moving from Procedural to Object-Oriented Development
- What Exactly Is an Object?
- What Exactly Is a Class?
- Using Class Diagrams as a Visual Tool
- Encapsulation and Data Hiding
- Inheritance
- Polymorphism
- Composition
- Conclusion
- 2. How to Think in Terms of Objects
- 3. More Object-Oriented Concepts
- 4. The Anatomy of a Class
-
5. Class Design Guidelines
- Modeling Real-World Systems
- Identifying the Public Interfaces
- Designing Robust Constructors (and Perhaps Destructors)
- Designing Error Handling into a Class
- Designing with Reuse in Mind
- Designing with Extensibility in Mind
- Designing with Maintainability in Mind
- Using Object Persistence
- Conclusion
- References
- 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. Design Patterns
- 11. Avoiding Dependencies and Highly Coupled Classes
- 12. The SOLID Principles of Object-Oriented Design
- Index
- Code Snippets
Product information
- Title: The Object-Oriented Thought Process, 5th Edition
- Author(s):
- Release date: April 2019
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780135182130
You might also like
book
The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition, 2nd Edition
"One of the most significant books in my life." —Obie Fernandez, Author, The Rails Way "Twenty …
book
Learning Domain-Driven Design
Building software is harder than ever. As a developer, you not only have to chase ever-changing …
book
Head First Design Patterns, 2nd Edition
What will you learn from this book? You know you don't want to reinvent the wheel, …
book
Designing Data-Intensive Applications, 2nd Edition
Data is at the center of many challenges in system design today. Difficult issues such as …