This book can give any Java developer -- regardless of experience -- the firm foundation they need to achieve the full benefits of object-oriented programming. The book combines practical introductions to UML, object-oriented methodologies, design patterns, libraries, and frameworks -- giving developers all the skills they need to begin writing robust object-oriented programs -- and to tackle the entire field of object-oriented development. Leading developer Bruce Wampler begins with a brief introduction to objects and their benefits; then introduces the fundamental concepts of object orientation and shows how they can be implemented in Java -- starting with the basics, and moving on to advanced topics such as object lifetime and copies of objects. He moves on to Object-Oriented Analysis and Design, introducing the essential concepts at the heart of every methodology. Next, he presents the essence of today's leading techniques for building effective object-oriented Java systems -- including design patterns, refactoring, and more. Wampler concludes by drawing on his decades of development experience to share powerful personal guidelines for creating more effective software. For all application developers who know at least the basics of Java, and are seeking to strengthen their object-oriented programming skills.
The emphasis is on object-oriented principles, not Java
The world of programming is changing, and in my opinion, the change is welcome. The Unified Modeling Language or UML used to be reserved for advanced programmers in large projects. However, the basics of the UML are easy to understand and provides an excellent way to represent classes and their interactions. Therefore, more authors of introductory programming texts are using the UML in their books. This is a welcome addition, and I am now puzzled when I see a book where it is not used. I do not understand why anyone would use the standard bubble tree diagram to describe inheritance when a UML diagram could be used. The next question to settle then becomes how well the UML is used and integrated into the presentation of the principles of object-oriented programming. My response to that question is also an affirmative. Wampler uses the combination of UML and Java to explain the fundamentals of object-oriented programming in a way that anyone with programming experience can follow. He also does not commit the error of using too much code in the book. Code is used only when necessary and only enough to make the crucial point. If there is a flaw, it is that there is not enough code in the book. There are times when I thought that an extra example would have been beneficial. However, that is a debatable point and not a serious flaw. If I were teaching an introductory course in object-oriented programming, this is the text I would use. The emphasis in such courses should be on the principles of object-oriented programming and not the features of a language. In my experience, students quickly learn the syntax of a language, but the organizational strategies used to make programs comes much more slowly. Wampler takes the right approach and I recommend this book to anyone who wants to learn object-oriented programming.