TL;DR: In this article, an abstraction factory pattern in a client/server architecture receives and transforms data into a plurality of concrete objects, each of which is associated with an abstract interface, and a map of the association between the concrete objects and the abstract interface is created.
Abstract: An abstraction factory pattern in a client/server architecture receives and transforms data into a plurality of concrete objects. Each of the concrete objects is associated with an abstract interface. A map of the association between the concrete objects and the abstract interface is created. When a request is received from the client (which includes an identifier for one of the concrete objects and an identifier for the abstract interface) the map on the server is consulted to locate the concrete object that has been identified. Then, an abstract object is created that corresponds to the located concrete object such that the abstract object serves as a handle, generically manipulable by the client/server architecture. The invention represents a way to encapsulate diversity such that only those parts of the system that need to understand the difference between two objects have to deal with those differences.
TL;DR: This book presents a meta-modelling architecture for distributed systems that automates the very labor-intensive and therefore time-heavy and expensive process of designing and implementing distributed systems.
Abstract: Foreword. About This Book. About The Authors. Guide To The Reader. PART I. SOME CONCEPTS. 1. On Patterns and Pattern Languages. 1.1 Patterns Introduced. 1.2 Inside Patterns. 1.3 In Between Patterns. 1.4 Into Pattern Languages. 1.5 Patterns Connected. 2. On Distributed Systems. 2.1 Benefits of Distribution. 2.2 Challenges of Distribution. 2.3 Technologies for Supporting Distribution. 2.4 Limitations with Middleware. 3. On the Pattern Language. 3.1 Intent, Scope, and Audience. 3.2 Origins and Genesis. 3.3 Structure and Content. 3.4 Presentation. 3.5 Practical Use. PART. II A STORY. 4. Warehouse Management Process Control. 4.1 System Scope. 4.2 Warehouse Management Process Control. 5. Base-line Architecture. 5.1 Architecture Context. 5.2 Partitioning the Big Ball of Mud. 5.3 Decomposing the Layers. 5.4 Accessing Domain Object Functionality. 5.5 Bridging the Network. 5.6 Separating User Interfaces. 5.7 Distributing Functionality. 5.8 Supporting Concurrent Domain Object Access. 5.9 Achieving Scalable Concurrency. 5.10 Crossing the Object-Oriented/Relational Divide. 5.11 Configuring Domain Objects at Run-Time. 5.12 Base-line Architecture Summary. 6. Communication Middleware. 6.1 A Middleware Architecture for Distributed Systems. 6.2 Structuring the Internal Design of the Middleware. 6.3 Encapsulating Low-level System Mechanisms. 6.4 Demultiplexing ORB Core Events. 6.5 Managing ORB Connections. 6.6 Enhancing ORB Scalability. 6.7 Implementing a Synchronized Request Queue. 6.8 Interchangeable Internal ORB Mechanisms. 6.9 Consolidating ORB Strategies. 6.10 Dynamic Configuration of ORBs. 6.11 Communication Middleware Summary. 7. Warehouse Topology. 7.1 Warehouse Topology Base-line. 7.2 Representing Hierarchical Storage. 7.3 Navigating the Storage Hierarchy. 7.4 Modeling Storage Properties. 7.5 Varying Storage Behavior. 7.6 Realizing Global Functionality. 7.7 Traversing the Warehouse Topology. 7.8 Supporting Control Flow Extensions. 7.9 Connecting to the Database. 7.10 Maintaining In-Memory Storage Data. 7.11 Configuring the Warehouse Topology. 7.12 Detailing the Explicit Interface. 7.13 Warehouse Topology Summary. 8. The Story Behind The Pattern Story. PART III. THE LANGUAGE. 9. From Mud To Structure. Domain Model . Layers . Model-View-Controller . Presentation-Abstraction-Control. Microkernel . Reflection . Pipes and Filters . Shared Repository . Blackboard. Domain Object . 10. Distribution Infrastructure. Messaging . Message Channel . Message Endpoint . Message Translator . Message Router . Publisher-Subscriber . Broker . Client Proxy . Requestor . Invoker . Client Request Handler . Server Request Handler . 11. Event Demultiplexing and Dispatching. Reactor . Proactor. Acceptor-Connector . Asynchronous Completion Token . 12. Interface Partitioning. Explicit Interface . Extension Interface . Introspective Interface . Dynamic Invocation Interface . Proxy . Business Delegate . Facade . Combined Method . Iterator . Enumeration Method . Batch Method . 13. Component Partitioning. Encapsulated Implementation . Whole-Part . Composite . Master-Slave . Half-Object plus Protocol . Replicated Component Group . 14. Application Control. Page Controller . Front Controller . Application Controller . Command Processor . Template View . Transform View . Firewall Proxy . Authorization . 15. Concurrency. Half-Sync/Half-Async . Leader/Followers . Active Object . Monitor Object . 16. Synchronization. Guarded Suspension . Future . Thread-Safe Interface . Double-Checked Locking. Strategized Locking . Scoped Locking . Thread-Specific Storage. Copied Value . Immutable Value . 17. Object Interaction. Observer . Double Dispatch . Mediator . Command . Memento . Context Object . Data Transfer Object . Message . 18. Adaptation and Extension. Bridge . Object Adapter . Chain of Responsibility . Interpreter. Interceptor . Visitor . Decorator. Execute-Around Object . Template Method . Strategy . Null Object . Wrapper Facade . Declarative Component Configuration . 19. Modal Behavior. Objects for States . Methods for States . Collections for States . 20. Resource Management. Container . Component Configurator . Object Manager . Lookup . Virtual Proxy . Lifecycle Callback . Task Coordinator . Resource Pool . Resource Cache . Lazy Acquisition . Eager Acquisition . Partial Acquisition . Activator . Evictor . Leasing . Automated Garbage Collection . Counting Handle . Abstract Factory . Builder . Factory Method . Disposal Method . 21. Database Access. Database Access Layer . Data Mapper . Row Data Gateway . Table Data Gateway . Active Record. 22. A Departing Thought. Glossary. References. Index of Patterns. Index of Names. Index.
TL;DR: In this article, the SOM object model removes static references to class objects by having all the parent class information available at runtime through a parent class object, so that when the derived class implementation needs information about the size of the parent classes state data structure, the addresses of parent class method procedures, or access to the parent's method procedure table, the appropriate information is retrieved from the parent Class object.
Abstract: A method, system and program for supporting a dynamic bind between a derived class and its parent class. A processor provides for the registration of class objects and dynamic binding of derived class objects to their parent class objects based on the registration mechanism. The SOM object model removes static references to class objects by having all the parent class information available at runtime through the parent class object. Thus, when the derived class implementation needs information about the size of the parent class state data structure, the addresses of the parent class method procedures, or access to the parent class method procedure table the appropriate information is retrieved from the parent class object.
TL;DR: In this article, a new factory object may have one or more new and/or updated object instances, and a corresponding old factory object is then located and its version is checked for compatibility.
Abstract: To dynamically update an operating system, a new factory object may have one or more new and/or updated object instances. A corresponding old factory object is then located and its version is checked for compatibility. A dynamic update procedure is then executed, which includes (a) changing a factory reference pointer within the operating system from the old factory object to the new factory object. For the case of updated object instances, (b) hot swapping each old object instance for its corresponding updated object instance, and (c) removing the old factory object. This may be performed for multiple updated object instances in the new factory object, preferably each separately. For the case of new object instances, they are created by the new factory and pointers established to invoke them. A single factory object may include multiple updated objects from a class, and/or new object instances from different classes, and the update may be performed without the need to reboot the operating system.
TL;DR: This book will teach you the essential design patterns and how you can use them in your Java application and will show you where patterns are used in Java technology APIs and why they were used.
Abstract: From the Book:
PrefaceWhy We Wrote This Book
During the many Java programming language courses we teach, we have found that only a few programmers know what design patterns are when asked. About one in ten is able to name a few patterns off the top of his or her head. Of course, the concepts behind the patterns are familiar to many programmers. When we demonstrate patterns in the classroom, developers know and recognize them.
We decided to create a pattern catalog for the Java programming language developers who understand at a basic level why patterns are a good idea, and are interested in applying them, but want a practical, hands-on guide to just how and why to use each individual pattern. We've kept the book casual and frank in tone, and included full working Java code examples for each.
We will have succeeded when you complete this book having not only learned about design patterns and the Java programming language, but having had fun reading it, as well.
What This Book Is About
This book will teach you the essential design patterns and how you can use them in your Java application. Furthermore, this book will show you where patterns are used in Java technology APIs and why they were used.
Who Should Read This Book
This book is intended for experienced Java programmers who want to build better applications. You should be comfortable with the Java programming language and be familiar with most of the basic Java APIs. Some knowledge of UML is useful, but not required. We recommend UML Distilled by Martin Fowler as a UML reference.
How This Book Is Organized
This book is divided into two parts. Part I,"Commonly Used Patterns," is organized like a pattern catalogue, reference-style.
Chapter 1: "Creational Patterns" on page 3 discusses patterns that create objects: Abstract Factory, Builder, Factory Method, Prototype, and Singleton.
Chapter 2: "Behavioral Patterns" on page 39 is focussed on the patterns that can determine the behavior of your object model: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, and Visitor.
Chapter 3: "Structural Patterns" on page 139 describes patterns that can bring structure to your application and has the following patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, HOPP, and Proxy.
Chapter 4: "System Patterns" on page 205 describes the patterns that help you build better architectures: Callback, Router, MVC, Session, Successive Update, Transaction, and Worker Thread.
Part II, "Patterns in the Java Programming Language," presents many of the Java APIs and shows the use of patterns in those API and their benefit.
Chapter 6: "Java Core APIs" on page 279 provides an overview in the familiar core APIs like Event Handling, JavaBeansTM, AWT and Swing, Collections, Input/Output, and Reflection.
Chapter 7: "Distributed Technologies" on page 303 describes selected distributed APIs and how patterns are used: JNDI, JDBC, RMI, and CORBA.
Chapter 8: "Jini and J2EE Architectures" on page 317 focuses on the two complementary frameworks Jini and J2EE. J2EE is further divided into Servlets, JSP and EJB technologies.
How to Use This Book
There are several ways to read this book. You could start at page one and read from cover to cover. However, we recommend you start with some of the easier patterns: Factory Method, Singleton, Observer, and Composite. Work your way through the book using those as starting points for your exploration. Alternatively, you might want to turn to sections in Part II first. Find an API you are familiar with and start looking for patterns there.
You can read the patterns in any order you feel most comfortable with. Later, you can use this book as a reference to refresh your memory when you want to put your knowledge of patterns into practice.
Companion Web Site
This book has a companion Web site to provide you with updates and other material: it is located at http://www.phptr.com/appliedjavapatterns