vault backup: 2022-06-21 16:25:48

Affected files:
02. PARA/03. Resources(資源)/Design Pattern.md
This commit is contained in:
2022-06-21 16:25:49 +08:00
parent 4527580a0d
commit 2abf3ae24a

View File

@@ -151,27 +151,46 @@ notify()則是當發生變化時,用來通知所有觀察者的實作。
假設這樣寫: 假設這樣寫:
- !!!col - !!!col
- 1 - 1
### Ingredient class
````col
```cpp ```cpp
Ingredients class IngredientBubble { ... };
class BeverageMilkTea { ... }; class IngredientRedbean { ... };
class BeverageGreenTea { ... }; class IngredientGreenbean { ... };
class BeverageBlackTea { class IngredientFairyGrass { ... };
}
``` ```
- 2
### Beverage class
```cpp ```cpp
class BeverageMilkTea { ... }; class BeverageMilkTea { ... };
class BeverageGreenTea { ... }; class BeverageGreenTea { ... };
class BeverageBlackTea { class BeverageBlackTea {
IngredientBubble* bubble;
IngredientRedbean* redbean;
IngredientGreenbean* greenbean;
IngredientFairyGrass* fairyGrass;
} }
``` ```
```` 每個飲料的class裡面都將每個配料定義為一個member如果客人有加配料的話我們就將配料實例化假設奶茶加了珍珠
```cpp
class BeverageBlackTea {
void addBubble() {
if (!bubble) bubble = new IngredientBubble();
}
};
```
要算價格的時候:
```cpp
class BeverageBlackTea {
void cost() {
if (bubble) cost += 10;
if (redbean) cost += 10;
if (greenbean) cost += 10;
if (fairyGrass) cost += 10;
}
private:
int32_t cost = 30; // 奶茶本身10元
};
```