diff --git a/data-access-object/README.md b/data-access-object/README.md index 1491eacf3..bd020252d 100644 --- a/data-access-object/README.md +++ b/data-access-object/README.md @@ -36,6 +36,10 @@ Wikipedia says > In computer software, a data access object (DAO) is a pattern that provides an abstract interface to some type of database or other persistence mechanism. +Sequence diagram + +![Data Access Object sequence diagram](./etc/dao-sequence-diagram.png) + ## Programmatic Example of DAO Pattern in Java There's a set of customers that need to be persisted to database. Additionally, we need the whole set of CRUD (create/read/update/delete) operations, so we can operate on customers easily. diff --git a/data-access-object/etc/dao-sequence-diagram.png b/data-access-object/etc/dao-sequence-diagram.png new file mode 100644 index 000000000..74488bd78 Binary files /dev/null and b/data-access-object/etc/dao-sequence-diagram.png differ diff --git a/data-bus/README.md b/data-bus/README.md index a033253cf..ee687a52d 100644 --- a/data-bus/README.md +++ b/data-bus/README.md @@ -31,6 +31,10 @@ In plain words > Data Bus is a design pattern that connects components of an application for communication based on the type of message or event being transferred. This pattern promotes decoupling, making it easier to scale and maintain the system by allowing components to communicate without direct dependencies. +Sequence diagram + +![Data Bus Sequence Diagram](./etc/data-bus-sequence-diagram.png) + ## Programmatic Example of Data Bus Pattern in Java Say you have an app that enables online bookings and participation in events. You want the app to send notifications, such as event advertisements, to all ordinary members of the community or organization holding the events. However, you do not want to send such advertisements to event administrators or organizers. Instead, you want to send them notifications about the timing of new advertisements sent to all members. The Data Bus enables you to selectively notify community members by type (ordinary members or event administrators) by making their classes or components only accept messages of a certain type. Thus, ordinary members and administrators do not need to know about each other or the specific classes or components used to notify the entire community, except for knowing the type of messages being sent. diff --git a/data-bus/etc/data-bus-sequence-diagram.png b/data-bus/etc/data-bus-sequence-diagram.png new file mode 100644 index 000000000..892469392 Binary files /dev/null and b/data-bus/etc/data-bus-sequence-diagram.png differ diff --git a/data-locality/README.md b/data-locality/README.md index 9056b2025..e9f556b8a 100644 --- a/data-locality/README.md +++ b/data-locality/README.md @@ -31,6 +31,14 @@ In plain words > The Data Locality pattern organizes data in memory to reduce access times and improve performance by ensuring that data frequently accessed together is stored close together. This is crucial for high-performance applications like game engines and real-time data processing systems. +Mind map + +![Data Locality mind map](./etc/data-locality-mind-map.png) + +Flowchart + +![Data Locality flowchart](./etc/data-locality-flowchart.png) + ## Programmatic Example of Data Locality Pattern in Java The Data Locality pattern is a design pattern that aims to improve performance by arranging data in memory to take advantage of spatial locality. This pattern is particularly useful in high-performance computing and game development where access speed is crucial. diff --git a/data-locality/etc/data-locality-flowchart.png b/data-locality/etc/data-locality-flowchart.png new file mode 100644 index 000000000..deedabbdf Binary files /dev/null and b/data-locality/etc/data-locality-flowchart.png differ diff --git a/data-locality/etc/data-locality-mind-map.png b/data-locality/etc/data-locality-mind-map.png new file mode 100644 index 000000000..c2761f45b Binary files /dev/null and b/data-locality/etc/data-locality-mind-map.png differ diff --git a/data-mapper/README.md b/data-mapper/README.md index 92c8e3021..b3bcb97f6 100644 --- a/data-mapper/README.md +++ b/data-mapper/README.md @@ -34,6 +34,10 @@ Wikipedia says > A Data Mapper is a Data Access Layer that performs bidirectional transfer of data between a persistent data store (often a relational database) and an in-memory data representation (the domain layer). The goal of the pattern is to keep the in-memory representation and the persistent data store independent of each other and the data mapper itself. This is useful when one needs to model and enforce strict business processes on the data in the domain layer that do not map neatly to the persistent data store. +Sequence diagram + +![Data Mapper sequence diagram](./etc/data-mapper-sequence-diagram.png) + ## Programmatic Example of Data Mapper Pattern in Java The Data Mapper is a design pattern that separates the in-memory objects from the database. Its responsibility is to transfer data between the two and also to isolate them from each other. This pattern promotes the [Single Responsibility Principle](https://java-design-patterns.com/principles/#single-responsibility-principle) and [Separation of Concerns](https://java-design-patterns.com/principles/#separation-of-concerns). diff --git a/data-mapper/etc/data-mapper-sequence-diagram.png b/data-mapper/etc/data-mapper-sequence-diagram.png new file mode 100644 index 000000000..c59b23a67 Binary files /dev/null and b/data-mapper/etc/data-mapper-sequence-diagram.png differ diff --git a/data-transfer-object/README.md b/data-transfer-object/README.md index 40d2c1eb0..624867601 100644 --- a/data-transfer-object/README.md +++ b/data-transfer-object/README.md @@ -35,6 +35,10 @@ Wikipedia says > In the field of programming a data transfer object (DTO) is an object that carries data between processes. The motivation for its use is that communication between processes is usually done resorting to remote interfaces (e.g. web services), where each call is an expensive operation. Because the majority of the cost of each call is related to the round-trip time between the client and the server, one way of reducing the number of calls is to use an object (the DTO) that aggregates the data that would have been transferred by the several calls, but that is served by one call only. +Sequence diagram + +![Data Transfer Object sequence diagram](./etc/dto-sequence-diagram.png) + ## Programmatic Example of DTO Pattern in Java Let's first introduce our simple `CustomerDTO` record. diff --git a/data-transfer-object/etc/dto-sequence-diagram.png b/data-transfer-object/etc/dto-sequence-diagram.png new file mode 100644 index 000000000..3fd59695e Binary files /dev/null and b/data-transfer-object/etc/dto-sequence-diagram.png differ