docs: diagrams for version number, virtual proxy, visitor

This commit is contained in:
Ilkka Seppälä
2025-04-12 09:58:48 +03:00
parent 81ecb5638d
commit 32c9031fcd
6 changed files with 12 additions and 4 deletions
+4
View File
@@ -35,6 +35,10 @@ Wikipedia says
> The Version Number pattern is a technique used to manage concurrent access to data in databases and other data stores. It involves associating a version number with each record, which is incremented every time the record is updated. This pattern helps ensure that when multiple users or processes attempt to update the same data simultaneously, conflicts can be detected and resolved.
Flowchart
![Version Number Pattern Flowchart](./etc/version-number-flowchart.png)
## Programmatic Example of Version Number Pattern in Java
Alice and Bob are working on the book, which stored in the database. Our heroes are making changes simultaneously, and we need some mechanism to prevent them from overwriting each other.
Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

+4
View File
@@ -35,6 +35,10 @@ Wikipedia says
> A proxy that controls access to a resource that is expensive to create.
Sequence diagram
![Virtual Proxy Sequence Diagram](./etc/virtual-proxy-sequence-diagram.png)
## Programmatic Example of Virtual Proxy Pattern in Java
The Virtual Proxy design pattern in Java can optimize resource utilization and system performance.
Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

+4 -4
View File
@@ -32,6 +32,10 @@ Wikipedia says
> In object-oriented programming and software engineering, the visitor design pattern is a way of separating an algorithm from an object structure on which it operates. A practical result of this separation is the ability to add new operations to existing object structures without modifying the structures.
Sequence diagram
![Visitor sequence diagram](./etc/visitor-sequence-diagram.png)
## Programmatic Example of Visitor Pattern in Java
Consider a tree structure with army units. Commander has two sergeants under it and each sergeant has three soldiers under them. Given that the hierarchy implements the visitor pattern, we can easily create new objects that interact with the commander, sergeants, soldiers, or all of them.
@@ -221,10 +225,6 @@ Program output:
14:58:06.118 [main] INFO com.iluwatar.visitor.CommanderVisitor -- Good to see you commander
```
## Detailed Explanation of Visitor Pattern with Real-World Examples
![Visitor](./etc/visitor_1.png "Visitor")
## When to Use the Visitor Pattern in Java
Use the Visitor pattern when
Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB