mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-05-14 08:58:26 +00:00
docs: balking, bloc, bridge diagrams
This commit is contained in:
@@ -29,6 +29,10 @@ Wikipedia says
|
||||
|
||||
> The balking pattern is a software design pattern that only executes an action on an object when the object is in a particular state. For example, if an object reads ZIP files and a calling method invokes a get method on the object when the ZIP file is not open, the object would "balk" at the request.
|
||||
|
||||
Flowchart
|
||||
|
||||

|
||||
|
||||
## Programmatic Example of Balking Pattern in Java
|
||||
|
||||
This example demonstrates the Balking Pattern in a multithreaded Java application, highlighting state management and concurrency control. The Balking Pattern is exemplified by a washing machine's start button that initiates washing only if the machine is idle. This ensures state management and prevents concurrent issues.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
@@ -35,6 +35,10 @@ The Bloc pattern manages the state of an object and allows for dynamically notif
|
||||
|
||||
> While not a formalized "Gang of Four" design pattern, Bloc is widely used in state-driven applications. It centralizes state management and propagates state changes to registered observers, following principles of separation of concerns.
|
||||
|
||||
### Sequence diagram
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## Programmatic Example of the Bloc Pattern in Java
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
+4
-4
@@ -36,6 +36,10 @@ Wikipedia says
|
||||
|
||||
> The bridge pattern is a design pattern used in software engineering that is meant to "decouple an abstraction from its implementation so that the two can vary independently"
|
||||
|
||||
Sequence diagram
|
||||
|
||||

|
||||
|
||||
## Programmatic Example of Bridge Pattern in Java
|
||||
|
||||
Imagine you have a weapon that can have various enchantments, and you need to combine different weapons with different enchantments. How would you handle this? Would you create multiple copies of each weapon, each with a different enchantment, or would you create separate enchantments and apply them to the weapon as needed? The Bridge pattern enables you to do the latter.
|
||||
@@ -203,10 +207,6 @@ The hammer is unwielded.
|
||||
The item's glow fades.
|
||||
```
|
||||
|
||||
## Bridge Pattern Class Diagram
|
||||
|
||||

|
||||
|
||||
## When to Use the Bridge Pattern in Java
|
||||
|
||||
Consider using the Bridge pattern when:
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 26 KiB |
Reference in New Issue
Block a user