
Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Java Program Design: Principles, Polymorphism, and Patterns First Edition
Purchase options and add-ons
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 facilitatethe 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.
- ISBN-101484241428
- ISBN-13978-1484241424
- EditionFirst Edition
- Publication dateDecember 9, 2018
- LanguageEnglish
- Dimensions6.1 x 1.08 x 9.25 inches
- Print length473 pages
Frequently purchased items with fast delivery
Editorial Reviews
From the Back Cover
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 designpatterns in your programs
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).
Product details
- Publisher : Apress; First Edition (December 9, 2018)
- Language : English
- Paperback : 473 pages
- ISBN-10 : 1484241428
- ISBN-13 : 978-1484241424
- Item Weight : 1.5 pounds
- Dimensions : 6.1 x 1.08 x 9.25 inches
- Best Sellers Rank: #5,436,565 in Books (See Top 100 in Books)
- #1,536 in Java Programming
- #6,771 in Computer Programming Languages
- Customer Reviews:
About the author

Discover more of the author’s books, see similar authors, read book recommendations and more.
Customer reviews
- 5 star4 star3 star2 star1 star5 star69%16%0%0%15%69%
- 5 star4 star3 star2 star1 star4 star69%16%0%0%15%16%
- 5 star4 star3 star2 star1 star3 star69%16%0%0%15%0%
- 5 star4 star3 star2 star1 star2 star69%16%0%0%15%0%
- 5 star4 star3 star2 star1 star1 star69%16%0%0%15%15%
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews. Please reload the page.
- Reviewed in the United States on August 15, 2020Excellent.
- Reviewed in the United States on January 20, 2019Every now and then a computer book appears that is destined to become a classic. The Gang of
Four's "Design Patterns: Elements of Reusable Object-Oriented Software"
(https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/) is
one example. Another example is "Java Program Design."
"Java Program Design" teaches you how to create outstanding and nontrivial Java software whose
source code is easy to understand and easy to maintain. It accomplishes this task by
instructing you on how to properly use Java language/API features (e.g., interfaces, lambdas,
streams, collections, and even JavaFX) to implement architectures based on design patterns
(e.g., strategy, decorator, observer, and model-view-controller) in order to obey fundamental
software development principles (e.g., don't repeat yourself, open-closed, and Liskov
Substitution). Multiple versions of a single banking example are presented throughout the book
to help you better understand the various design concepts.
"Java Program Design" picks up from where beginning Java books typically leave off. A beginning
Java book focuses on teaching Java's language features and assorted APIs, and that's about it.
If you're a Java beginner, you might want to first learn more about the Java language and
assorted basic APIs (e.g., lambdas and streams) before diving into this book. Not much space is
devoted to teaching language features/APIs because the emphasis is on design. However, you
should still obtain your copy because you're bound to pick up useful design knowledge while
learning Java basics. This book will be a great addition to your library, and the design
concepts on which it's based will still be relevant many years from now.
It's hard to put this book down, but you don't want to rush through it and become overwhelmed
with everything you'll learn. Take your time and work through each chapter's examples before
progressing to the next chapter.
I learned alot about properly designing Java code from reading this book, and I think you will
too. Mastering this knowledge might even help you get that promotion at work.
- Reviewed in the United States on April 25, 2019Stay away from this book. I don't think that this book was written by Prof. Edward Sciore because the language and explanations are of very low quality and the content seems to be copied from other sources. The book is a piece of junk. I will recommend Head First Java, Head First design patterns, and Robert martin's books to those who are looking for building their Java programming skills.
- Reviewed in the United States on December 21, 2018This is a book every Java developer must read, early in their carrier. It explains object oriented concepts in detail with nice code samples written in Java. In addition to made up examples, author also uses many examples from the Java inbuilt classes to explain the value of adhering to OOP concepts, and how things are implemented. After explaining key OOP concepts, the book starts talking about design patterns. Once again, the author has used many Java code examples and class diagrams to explain the theory in a more practical manner.