How to Use Objects: Code and Concepts is published by Addison-Wesley Professional in January 2016. This book has 832 pages in English, ISBN-13 978-0321995544.
While most developers today use object-oriented languages, the full power of objects is available only to those with a deep understanding of the object paradigm. How to Use Objects will help you gain that understanding, so you can write code that works exceptionally well in the real world.
Author Holger Gast focuses on the concepts that have repeatedly proven most valuable and shows how to render those concepts in concrete code. Rather than settling for minimal examples, he explores crucial intricacies, clarifies easily misunderstood ideas, and helps you avoid subtle errors that could have disastrous consequences.
Gast addresses the technical aspects of working with languages, libraries, and frameworks, as well as the strategic decisions associated with patterns, contracts, design, and system architecture. He explains the roles of individual objects in a complete application, how they react to events and fulfill service requests, and how to transform excellent designs into excellent code. Using practical examples based on Eclipse, he also shows how tools can help you work more efficiently, save you time, and sometimes even write high-quality code for you.
Gast writes for developers who have at least basic experience: those who’ve finished an introductory programming course, a university computer science curriculum, or a first or second job assignment.
• Understanding what a professionally designed object really looks like
• Writing code that reflects your true intentions—and testing to make sure it does
• Applying language idioms and connotations to write more readable and maintainable code
• Using design-by-contract to write code that consistently does what it’s supposed to do
• Coding and architecting effective event-driven software
• Separating model and view, and avoiding common mistakes
• Mastering strategies and patterns for efficient, flexible design
• Ensuring predictable object collaboration via responsibility-driven design