From faea74ae2b6ae6e919669d83f07248601ad16816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Sat, 5 Apr 2025 20:20:12 +0300 Subject: [PATCH] docs: add adapter sequence diagram --- adapter/README.md | 4 ++++ adapter/etc/adapter-sequence-diagram.png | Bin 0 -> 27690 bytes 2 files changed, 4 insertions(+) create mode 100644 adapter/etc/adapter-sequence-diagram.png diff --git a/adapter/README.md b/adapter/README.md index 945de2db0..489742494 100644 --- a/adapter/README.md +++ b/adapter/README.md @@ -35,6 +35,10 @@ Wikipedia says > In software engineering, the adapter pattern is a software design pattern that allows the interface of an existing class to be used as another interface. It is often used to make existing classes work with others without modifying their source code. +Sequence diagram + +![Adapter sequence diagram](./etc/adapter-sequence-diagram.png "Adapter sequence diagram") + ## Programmatic Example of Adapter Pattern in Java The Adapter Pattern example in Java shows how a class with an incompatible interface can be adapted to work with another class. diff --git a/adapter/etc/adapter-sequence-diagram.png b/adapter/etc/adapter-sequence-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..a9bb557ea61e4cbd3b05982efbbd2aa1a33a2679 GIT binary patch literal 27690 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 KRDj>Ic>X_kMQow~ literal 0 HcmV?d00001