Java Program Design

Principles, Polymorphism, and Patterns

  • Edward Sciore

Table of contents

  1. Front Matter
    Pages i-xvii
  2. Edward Sciore
    Pages 1-46
  3. Edward Sciore
    Pages 47-85
  4. Edward Sciore
    Pages 87-126
  5. Edward Sciore
    Pages 127-162
  6. Edward Sciore
    Pages 163-199
  7. Edward Sciore
    Pages 201-235
  8. Edward Sciore
    Pages 237-270
  9. Edward Sciore
    Pages 271-313
  10. Edward Sciore
    Pages 315-351
  11. Edward Sciore
    Pages 353-388
  12. Edward Sciore
    Pages 389-443
  13. Back Matter
    Pages 445-456

About this book


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


Polymorphism Design patterns Class design Interfaces Rule of Abstraction Composition Inheritance Encapsulation Constructors SDLC Iterator pattern SOLID Command pattern Model, View, Controller pattern MVC architecture Observer pattern Composite pattern Java 9 Java 10 Java 11

Authors and affiliations

  • Edward Sciore
    • 1
  1. 1.NewtonUSA

Bibliographic information