Java Program Design: Principles, Polymorphism, and Patterns

  • 4h 37m
  • Edward Sciore
  • Apress
  • 2019

Get a grounding in polymorphism and other fundamental aspects of object-oriented program design and implementation, and learn a subset of design patterns that any practicing Java professional simply must know in today’s job climate.

Java Program Design presents program design principles to help practicing programmers up their game and remain relevant in the face of changing trends and an evolving language. The book enhances the traditional design patterns with Java's new functional programming features, such as functional interfaces and lambda expressions. The result is a fresh treatment of design patterns that expands their power and applicability, and reflects current best practice.

The book examines some well-designed classes from the Java class library, using them to illustrate the various object-oriented principles and patterns under discussion. Not only does this approach provide good, practical examples, but you will learn useful library classes you might not otherwise know about.

The design of a simplified banking program is introduced in chapter 1 in a non-object-oriented incarnation and the example is carried through all chapters. You can see the object orientation develop as various design principles are progressively applied throughout the book to produce a refined, fully object-oriented version of the program in the final chapter.

What You'll Learn

  • Create well-designed programs, and identify and improve poorly-designed ones
  • Build a professional-level understanding of polymorphism and its use in Java interfaces and class hierarchies
  • Apply classic design patterns to Java programming problems while respecting the modern features of the Java language
  • Take advantage of classes from the Java library to facilitate the implementation of design patterns in your programs

Who This Book Is For

Java programmers who are comfortable writing non-object-oriented code and want a guided immersion into the world of object-oriented Java, and intermediate programmers interested in strengthening their foundational knowledge and taking their object-oriented skills to the next level. Even advanced programmers will discover interesting examples and insights in each chapter.

About the Author

Edward Sciore is a recently retired Associate Professor at Boston College, who gleefully taught computer science to college students for over 35 years. This book is the result of his experiences teaching courses on Java programming, object-oriented design, and software engineering. Edward is author of Understanding Oracle APEX 5 Application Development (Apress, 2015) and Database Design and Implementation (Wiley, 2008).

In this Book

  • Modular Software Design
  • Polymorphism
  • Class Hierarchies
  • Strategies
  • Encapsulating Object Creation
  • Iterables and Iteration
  • Adapters
  • Decorators
  • Composites
  • Observers
  • Model, View, and Controller