From b9938055bcddfdfdabf81d79adf1a8b56d44d569 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilkka=20Sepp=C3=A4l=C3=A4?= Date: Tue, 4 Mar 2025 21:14:30 +0200 Subject: [PATCH] docs: add mvc architecture diagram --- model-view-controller/README.md | 5 +++++ .../etc/mvc-architecture-diagram.png | Bin 0 -> 30579 bytes 2 files changed, 5 insertions(+) create mode 100644 model-view-controller/etc/mvc-architecture-diagram.png diff --git a/model-view-controller/README.md b/model-view-controller/README.md index 42ef81fc1..536cb2ca4 100644 --- a/model-view-controller/README.md +++ b/model-view-controller/README.md @@ -34,6 +34,11 @@ Wikipedia says > Model–view–controller (MVC) is commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user. +Architecture diagram + +![Model-View-Controller Architecture Diagram](./etc/mvc-architecture-diagram.png) + + ## Programmatic Example of Model-View-Controller Pattern in Java Consider following `GiantModel` model class that provides the health, fatigue & nourishment information. diff --git a/model-view-controller/etc/mvc-architecture-diagram.png b/model-view-controller/etc/mvc-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..33371d41f22c325e525a08da9ea5e8a68f1aee49 GIT binary patch literal 30579 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