Friday, 22 November 2013

Flyweight Design pattern - Sequence Diagram

Master Software Design Patterns!

Subscribe to Ram N Java for in-depth UML diagrams, clean code architecture, and beginner-friendly programming lessons!

SUBSCRIBE NOW

Understanding the Flyweight Sequence Flow

The Flyweight Design Pattern is a structural pattern focused on minimizing memory footprint by sharing common object instances. While class diagrams show static relationships, a Sequence Diagram demonstrates how messages and execution flow across objects dynamically over time.

In this workflow, the client never directly instantiates concrete flyweight objects. Instead, every request passes through a centralized factory that acts as an intelligent cache manager.

Step-by-Step Message Execution Order

  • Step 1: Client Request: The Client sends a request to the FlyweightFactory calling getFlyweight(key).
  • Step 2: Cache Lookup: The FlyweightFactory checks its internal collection (such as a HashMap or pool) for the requested key.
  • Step 3: Conditional Creation:
    • If the object exists, the factory immediately returns the cached instance.
    • If the object does not exist, the factory creates a new ConcreteFlyweight, stores it in the pool, and then returns it.
  • Step 4: Operation Invocation: The Client receives the flyweight instance and calls its operation method, passing any dynamic extrinsic state as method parameters.

Key Architectural Takeaways

  • Encapsulated Lifecycle: The factory retains full control over when to instantiate and when to reuse shared objects.
  • Context Independence: The flyweight object remains stateless regarding external variations, receiving context on-demand through operation parameters.
  • Scalability: Even under high loads with millions of interactions, the total number of objects in memory stays bounded and predictable.

Watch More Related Design Pattern Tutorials


Click here to watch in Youtube : https://www.youtube.com/watch?v=3WAXOUm_WEc


Click the below Image to Enlarge
Flyweight Design pattern - Sequence Diagram

















See also:

  • Flyweight Design pattern - Introduction
  • Flyweight Design pattern - Real Time Example
  • Flyweight Design pattern - Class Diagram
  • Flyweight Design pattern - Implementation
  • Flyweight Design pattern - Key Points
  • All Design Patterns Links
  • Tutorials