[Book Cover]

Java Design: Building Better Apps and Applets, 1/e

Peter Coad, Object International, Inc.
Mark Mayfield, Object International, Inc.

Published January, 1997 by Prentice Hall PTR (ECS Professional)

Copyright 1997, 256 pp.
Paper Bound w/CD-ROM
ISBN 0-13-271149-4

[CD Included]


Sign up for future
mailings
on this subject.

See other books about:
    Java--Intermediate Programming-Computer Science


Summary

Understand Java as a serious client/server development language.
In this book, internationally-respected object oriented development experts Peter Coad and Mark Mayfield show programmers the best way to design Java client/server applications and applets that are as efficient and reliable as possible. The book covers object models and scenario views as they apply to Java programming. It introduces threads and concurrency , and shows how to design software that makes the most effective, reliable use of multithreading. Developers will learn better ways to think about Java exceptions - and when and how to use them. The book also covers Java's implementation of notification. Java: Designing Better Apps and Applets will be invaluable to any professional software developer interested in client/server programming with Java.

Features


Helps programmers bring discipline to their Java development projects.
Comprehensive coverage of object-oriented design with Java.
Contains a complete case study: developing a flight reservations system with Java.


Table of Contents
Why Java Design? Design Java-Inspired Design A Design Book The Companion CD-ROM How to Get Updates Feedback and Hands-On Workshops

    1. Design by Example.

      Five Major Activities. Example, Example, Example. Charlie's Charters.

        Identify System Purpose and Features. Select Classes. Sketch A UI. Work Out Dynamics With Scenarios. Build an Object Model.

          Zoe's Zones.

            Identify System Purpose and Features. Select Classes. Sketch a UI. Build Scenario Views. Build an Object Model.

              Summary.

            2. Design with Composition, Rather Than Inheritance.

              Composition.

                Composition: An Example.

                  Inheritance.

                    Inheritance vs. Interfaces. Inheritance: An Example. Inheritance: Benefits. Inheritance: Risks. Inheritance: When to Use It. Inheritance: Checkpoints.

                      Example: Composition (the Norm). Example: Both Composition and Inheritance. Example: Inheritance (the Exception). Example: Inheritance in Need of Adjustment. Example: Thread. Example: Applet. Example: Observable. Summary.

                    3. Design with Interfaces.

                      What Are Interfaces? Why Use Interfaces?

                        The Problem. A Partial Solution. Flexibility, Extensibility, and Pluggability. That's Why.

                          Four Major Contexts. Factor Out Repeaters.

                            Example: The Lunch Counter at Charlie's Charters. Example: Simplify and Identify Object-Model Patterns.

                              Factor Out to a Proxy.

                                Recognizing a Proxy. Life Without a Proxy. Life With a Proxy. Introducing a Proxy Interface.

                                  Factor Out for Analogous Apps.

                                    Categorize to your Heart's Content. Categorize Charlie's Charters Business. How Can Interfaces Help in This Context? An Aside: Some Related Interfaces. Using IDateReserve for Charlie's Charters. Using IDateReserve in Other Apps.

                                      Factor Out for Future Expansion.

                                        Factoring Out for the Future of Zoe's Zones. Flexibility, Extensibility, Pluggability for Zoe's Zones.

                                          Summary.

                                        4. Design with Threads.

                                          Threads.

                                            What is a Thread? How Do Threads Get Started? Why Use Multiple Threads? If You Don't Need Multiple Threads, Don't Use Them. Sync. Sync: A Guarantee and a Non-Guarantee. Sync: Scope. Shared Value (and keeping out of trouble). Don't Sync Longer Than You Have To. Shared Resource (and keeping out of trouble).

                                              Multiple Clients, Multiple Threads within an Object. Multiple Thread Objects, Multiple Threads within an Object.

                                                Single Thread. Prioritized-Object Threads. Prioritized-Method Threads. Prioritized-Method Prioritized-Object Threads. Overall Point.

                                                  Interface Adapters.

                                                    Need. One Approach: Dispatcher. A Better Approach: Interface Adapters. What an Interface Adapter Looks Like. Interface Adapters for Zoe's Zones. A Zone-Monitoring Thread. A Sensor-Assessing Thread and a Sensor-Monitoring Thread.

                                                      Summary.

                                                    5. Design With Notification.

                                                      Passive Notification. Timer-Based Notification.

                                                        Timer-Notification Pattern. A Timer for Charlie's Charters.

                                                          Active Notification.

                                                            Observable-Observer. A Pair of Classes (one extreme). A Pair of Interfaces (another extreme). Classes and an Interface (standing on shaky ground). Java's Observable Class? Java's Observer Interface? Composition and Interfaces (to the rescue). PD-to-UI Notification for Charlie's Charters. Observable ComponentÐrepeater Pattern. Threaded-Observable Component. Active Notification: Conclusion.

                                                              Summary.

                                                            Appendix A: Design Strategies.
                                                            Appendix B: Notation Summary.
                                                            Appendix C: Java Visibility.
                                                            Bibliography.
                                                            Index.


                                                          [Help]

                                                          © Prentice-Hall, Inc. A Simon & Schuster Company
                                                          Comments To webmaster@prenhall.com