From b3fee794cb15a6de96c5fc2e985793fb10cd0724 Mon Sep 17 00:00:00 2001
From: PhucVR <59957741+nguyenphuc22@users.noreply.github.com>
Date: Wed, 21 Feb 2024 18:59:27 +0700
Subject: [PATCH] Refactor State.md and remove unnecessary changes in
workspace.xml
---
.idea/workspace.xml | 16 +---------------
Writerside/topics/State.md | 31 +++++++++++++++++++++++++------
2 files changed, 26 insertions(+), 21 deletions(-)
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 80b68b9..dc11973 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,9 +4,7 @@
-
-
-
+
@@ -97,18 +95,6 @@
"kotlin-language-version-configured": "true",
"last_opened_file_path": "/Users/phucnguyen/Documents/GitHub/Design-Patterns",
"settings.editor.selected.configurable": "fileTemplates"
- },
- "keyToStringList": {
- "stardust.markdown.MarkdownSplitEditorSuppressor:keyList": [
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Builder.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Command.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Creational-Patterns.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Mediator.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Memento.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Observer.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/Proxy.md",
- "/Users/phucnguyen/Documents/GitHub/Design-Patterns/Writerside/topics/State.md"
- ]
}
}]]>
diff --git a/Writerside/topics/State.md b/Writerside/topics/State.md
index 3e1a967..2235fd4 100644
--- a/Writerside/topics/State.md
+++ b/Writerside/topics/State.md
@@ -51,13 +51,32 @@ stateDiagram-v2
## Cấu trúc
-Các thành phần chính trong State Pattern:
-
-- Context: lớp chứa tham chiếu đến trạng thái hiện tại.
-
-- State: interface chung cho các trạng thái.
+```mermaid
+classDiagram
+ class Context {
+ -State state
+ +setState(State state)
+ +request()
+ }
+ class State {
+ +handle()
+ }
+ class ConcreteStateA {
+ +handle()
+ }
+ class ConcreteStateB {
+ +handle()
+ }
+
+ Context --> State : has
+ State <|-- ConcreteStateA : implements
+ State <|-- ConcreteStateB : implements
+```
-- ConcreteState: các lớp triển khai cụ thể cho mỗi trạng thái.
+Trong sơ đồ này:
+- `Context` là lớp môi trường chứa một thể hiện của các trạng thái khác nhau (`State`).
+- `State` là lớp trừu tượng hoặc interface định nghĩa phương thức `handle()` mà mỗi trạng thái cụ thể (`ConcreteStateA`, `ConcreteStateB`) sẽ triển khai.
+- `ConcreteStateA` và `ConcreteStateB` là các lớp cụ thể triển khai các hành vi khác nhau tương ứng với từng trạng thái của `Context`.
## Cách triển khai