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: Object-Oriented Thought Process, 5th Edition
- Author(s):
- Release date: April 2019
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780135182130
You might also like
book
Generative Deep Learning, 2nd Edition
Generative AI is the hottest topic in tech. This practical book teaches machine learning engineers and …
book
Designing Data-Intensive Applications
Data is at the center of many challenges in system design today. Difficult issues need to …
book
Effective Java, 3rd Edition
Since this Jolt-award winning classic was last updated in 2008, the Java programming environment has changed …
audiobook
The Design of Everyday Things
First, businesses discovered quality as a key competitive edge; next came science. Now, Donald A. Norman, …