From ec871c349f2f2411e41dcc8be1ba7fcf033221f5 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Tue, 14 Jun 2022 15:53:24 +0800 Subject: [PATCH] vault backup: 2022-06-14 15:53:24 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected files: .obsidian/workspace 02. PARA/03. Resources(資源)/Design Pattern.md attachments/20220614154819_Observer_Pattern.png --- .obsidian/workspace | 10 +++++----- .../03. Resources(資源)/Design Pattern.md | 7 +++++++ attachments/20220614154819_Observer_Pattern.png | Bin 0 -> 25984 bytes 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 attachments/20220614154819_Observer_Pattern.png diff --git a/.obsidian/workspace b/.obsidian/workspace index b341c81..a2899d5 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -9,7 +9,7 @@ "state": { "type": "markdown", "state": { - "file": "02. PARA/03. Resources(資源)/C++17/lambda.md", + "file": "02. PARA/03. Resources(資源)/Design Pattern.md", "mode": "source", "source": true } @@ -69,7 +69,7 @@ "state": { "type": "backlink", "state": { - "file": "02. PARA/03. Resources(資源)/C++17/lambda.md", + "file": "02. PARA/03. Resources(資源)/Design Pattern.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -86,7 +86,7 @@ "state": { "type": "outline", "state": { - "file": "02. PARA/03. Resources(資源)/C++17/lambda.md" + "file": "02. PARA/03. Resources(資源)/Design Pattern.md" } } } @@ -116,6 +116,7 @@ }, "active": "cfe19fa2de06a1e6", "lastOpenFiles": [ + "02. PARA/03. Resources(資源)/Design Pattern.md", "02. PARA/03. Resources(資源)/C++17/lambda.md", "02. PARA/03. Resources(資源)/C++17/C++17.md", "02. PARA/03. Resources(資源)/C++17/以值擷取(captured-by-value).md", @@ -124,7 +125,6 @@ "02. PARA/01. Project(專案)/未命名.md", "02. PARA/01. Project(專案)/008. Sentinel.md", "02. PARA/03. Resources(資源)/99. templates/front matter.md", - "02. PARA/03. Resources(資源)/Obsidian.md", - "attachments/Pasted image 20201206094618.png" + "02. PARA/03. Resources(資源)/Obsidian.md" ] } \ No newline at end of file diff --git a/02. PARA/03. Resources(資源)/Design Pattern.md b/02. PARA/03. Resources(資源)/Design Pattern.md index c758793..643c11a 100644 --- a/02. PARA/03. Resources(資源)/Design Pattern.md +++ b/02. PARA/03. Resources(資源)/Design Pattern.md @@ -131,3 +131,10 @@ class duckWood : public duck { ![[Pasted image 20220526183019.png]] 這樣做的另一個好處是fly的初始化是動態的,只要再多一個`set()` function就可以動態的切換實作,也就是說你可以從設定檔來決定你的鴨子要長什麼樣子。 + + +## 觀察者模式(Observer Pattern ) +有一個會產生變動的主角(subject),與一堆需要觀察變動的「觀察者」。觀察者向主角註冊,當主角發生變化的時候,發後通知給觀察者。 +![[20220614154819_Observer_Pattern.png]] + +其中 \ No newline at end of file diff --git a/attachments/20220614154819_Observer_Pattern.png b/attachments/20220614154819_Observer_Pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..fe419fc3f90715efbc72c0ee96593881d09c889b GIT binary patch literal 25984 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