TY - BOOK AU - Sciore,Edward TI - Java program design: principles, polymorphism, and patterns SN - 1484241436 AV - QA76.73.J38 U1 - 005.2/762 23 PY - 2019/// CY - Berkeley, CA PB - Apress L. P. KW - JavaScript (Computer program language) KW - COMPUTERS / Programming Languages / Java KW - bisacsh KW - fast KW - Electronic books N1 - Description based upon print version of record; JavaFX Views and Controllers; Intro; Table of Contents; About the Author; About the Technical Reviewer; Acknowledgments; Introduction; Chapter 1: Modular Software Design; Designing for Change; Object-Oriented Basics; APIs and Dependencies; Modularity; Class Diagrams; Static vs. Nonstatic; A Banking Demo; The Single Responsibility Rule; Refactoring; Unit Testing; Class Design; Encapsulation; Redistributing Responsibility; Dependency Injection; Mediation; Design Tradeoffs; The Design of Java Maps; Summary; Chapter 2: Polymorphism; The Need for Polymorphism; Interfaces; Reference Types; Type Safety; Type Casting; Cipher Input StreamsDecorator Transparency; Summary; Chapter 9: Composites; Predicates as Composites; Composite Objects in JavaFX; The Composite Pattern; A Cookbook Example; Traversing a Composite Object; Summary; Chapter 10: Observers; Observers and Observables; The Observer Pattern; Push vs. pull; Managing the Observer List; The Generic Observer Pattern in Java; Events; Observers in JavaFX; JavaFX Properties; Properties as Wrappers; Properties as Observables; JavaFX Bindings; Summary; Chapter 11: Model, View, and Controller; The MVC Design Rule; Multiple Views for a Model; MVC in Excel; External IterationInternal Iteration; The Visitor Pattern; Predicates; Collection Streams; Summary; Chapter 7: Adapters; Inheritance for Reuse; Wrappers; The Adapter Pattern; Text Streams; The Adapter OutputStreamWriter; The Adapter InputStreamReader; The Adapter StringReader; Object Streams; Saving State in the Banking Demo; Adapters for the Banking Demo; Summary; Chapter 8: Decorators; Decorator Classes; The Decorator Pattern; The Chain of Command Pattern; Decorated Iterators; Implementing Collection Streams; Decorated Input Streams; Buffered Input Streams; Progress Monitoring; The Strategy PatternComparators; Anonymous Inner Classes; Explicit Anonymous Classes; Lambda Expressions; The Strategy Pattern as a Design Tool; The Command Pattern; Eliminating the Class Hierarchy; Templates vs. Strategies; Summary; Chapter 5: Encapsulating Object Creation; Object Caching; Singleton Classes; Singleton Strategy Classes; Static Factory Methods; Factory Objects; Cached Factory Objects; The Factory Pattern; Factories for Customized Objects; Summary; Chapter 6: Iterables and Iteration; Iterators; Writing an Iterator Class; The Iterator Pattern; Designing Iterable Classes; TransparencyThe Open-Closed Rule; The Comparable Interface; Subtypes; The Java Collection Library; ArrayList; LinkedList; HashSet; TreeSet; The Liskov Substitution Principle; Should SortedSet Extend List?; Why Isn't There an Interface SortedList?; Should Queue Extend List? Should List Extend Queue?; Why Have the Interface Set if It Doesn't Provide any Added Functionality?; The Rule of Abstraction; Adding Code to an Interface; Summary; Chapter 3: Class Hierarchies; Subclasses; Abstract Classes; Writing Java Collection Classes; Byte Streams; The Template Pattern; Summary; Chapter 4: Strategies N2 - 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 UR - https://drive.google.com/file/d/1Kn0lC7HdYu3m9vVXmh5NDpnIcgITQF_l/view?usp=sharing ER -