- Decoupling106
- Object composition32
- Encapsulation30
- Scalability30
- Abstraction29
- Polymorphism26
- Gang of Four25
- Performance25
- Data access21
- Persistence21
- Asynchronous20
- Messaging20
- Code simplification20
- Enterprise patterns20
- Extensibility19
- Instantiation19
- API design18
- Event-driven18
- Fault tolerance17
- Layered architecture17
- Thread management14
- Synchronization13
- Interface13
- Reactive13
- Data processing13
- Microservices12
- Game programming11
- Resource management11
- Client-server11
- Architecture10
- Business10
- Domain10
- Functional decomposition10
- Presentation9
- Web development9
- State tracking8
- Optimization8
- Resilience7
- Integration7
- Runtime7
- Publish/subscribe7
- Concurrency6
- Isolation6
- Testing6
- Cloud distributed6
- Data transformation6
- Transactions6
- Memory management6
- Wrapping5
- Idiom5
- Generic5
- Security5
- Reusability4
- Modularity4
- Session management4
- Object mapping4
- Immutable4
- Lazy initialization4
- Dynamic typing3
- Compatibility3
- Proxy3
- Data binding3
- Caching3
- Retry3
- Data transfer3
- Recursion3
- Dependency management3
- Buffering3
- Multithreading3
- Inheritance3
- Migration2
- Modernization2
- Refactoring2
- Delegation2
- Inversion of control2
- Accumulation2
- Undo2
- Context2
- Enhancement2
- Composition2
- System health2
- Error handling2
- Distributed Systems1
- Actor Model1
- Closure1
- Feature management1
- Monitoring1
- Observability1
- Cohesion1
- Cookies1
- Facade1
- Database1
- Resource Management1
- Versioning1
Intent of Active Object Design Pattern
The Active Object pattern provides a reliable method for asynchronous processing in Java, ensuring responsive applications and efficient thread management. It achieves this by encapsulating tasks within objects that have their own thread and message queue. This separation keeps the main thread responsive and avoids issues like direct thread manipulation or shared state access.
Also Known As
- Message-passing concurrency
- Actor-based concurrency
Intent of Actor Model Pattern
The Actor Model pattern enables the construction of highly concurrent, distributed, and fault-tolerant systems by using isolated components (actors) that interact exclusively through asynchronous message passing.
Also known as
- Flow Control
- Rate Limiting Mechanism
Intent of the Backpressure Design Pattern
Control the rate of data production so downstream consumers are not overwhelmed by excessive load.
Detailed Explanation of Backpressure Pattern with Real-World Examples
Also known as
- Asynchronous Procedure Call
Intent of Async Method Invocation Design Pattern
The Async Method Invocation pattern is designed to enhance concurrency by allowing methods to be called asynchronously. This pattern helps in executing parallel tasks, reducing wait times, and improving system throughput.
Also known as
- Call-After
- Event-Subscription
- Listener
Intent of Callback Design Pattern
The Java Callback Design Pattern is a piece of executable code passed as an argument to other code, which is expected to call back (execute) the argument at a convenient time.
Also known as
- Asynchronous Event Handling
Intent of Event-Based Asynchronous Design Pattern
The Event-Based Asynchronous pattern allows a system to handle tasks that might take some time to complete without blocking the execution of the program. It enables better resource utilization by freeing up a thread that would otherwise be blocked waiting for the task to complete.
Also known as
- Event-Driven System
- Event-Based Architecture
Intent of Event-Driven Architecture Design Pattern
Event-Driven Architecture (EDA) is designed to orchestrate behavior around the production, detection, consumption of, and reaction to events. This architecture enables highly decoupled, scalable, and dynamic interconnections between event producers and consumers.
Also known as
- Event Stream
- Message Queue
Intent of Event Queue Design Pattern
The Event Queue pattern is designed to manage tasks in an asynchronous manner, allowing applications to handle operations without blocking user interactions or other processes. This improves scalability and system performance.
Also known as
- Scatter-Gather
Intent of Fan-Out/Fan-In Design Pattern
The Fan-Out/Fan-In design pattern in Java aims to improve concurrency and optimize processing time by dividing a task into multiple sub-tasks that can be processed in parallel (fan-out) and then combining the results of these sub-tasks into a single outcome (fan-in).
Also known as
- Conditional Block
- Suspended Execution
Intent of Guarded Suspension Design Pattern
The Guarded Suspension pattern is crucial in Java design patterns for managing operations that require both a lock and a condition to proceed. It optimizes concurrency control by allowing a thread to wait for the right condition efficiently.