From 2ebac4af16f834f2663e10bf19fe82157cd41b96 Mon Sep 17 00:00:00 2001 From: Awin Huang Date: Tue, 21 Jun 2022 16:46:00 +0800 Subject: [PATCH] vault backup: 2022-06-21 16:46:00 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected files: 02. PARA/03. Resources(資源)/Design Pattern.md --- 02. PARA/03. Resources(資源)/Design Pattern.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/02. PARA/03. Resources(資源)/Design Pattern.md b/02. PARA/03. Resources(資源)/Design Pattern.md index 3845fed..ffb04b5 100644 --- a/02. PARA/03. Resources(資源)/Design Pattern.md +++ b/02. PARA/03. Resources(資源)/Design Pattern.md @@ -200,4 +200,8 @@ class BeverageBlackTea { }; ``` -這樣的問題是,每當有一種新配料出現,我們就要在奶茶類別裡修改至少2個function,addXXX()與cost(),目前我們有3種飲料,所以要修改6個function,更何況,如果客人要加2份珍珠怎麼辦?這明顯不利程式的維護,必須有一種方法讓程式的修改最小,讓寫好的程式不用被修改才行。 \ No newline at end of file +這樣的問題是,每當有一種新配料出現,我們就要在奶茶類別裡修改至少2個function,addXXX()與cost(),目前我們有3種飲料,所以要修改6個function,更何況,如果客人要加2份珍珠怎麼辦?這明顯不利程式的維護,必須有一種方法讓程式的修改最小,讓寫好的程式不用被修改才行。 + +讓裝飾者模式來改善這個問題。首先讓配料跟飲料有同樣的界面,但是修改一下配料的constructor: +```c[] +``` \ No newline at end of file