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
- 1
### Ingredient class
```cpp
class IngredientBubble { ... };
class IngredientRedbean { ... };
class IngredientGreenbean { ... };
class IngredientFairyGrass { ... };
```
````col
- 2
### Beverage class
```cpp
class BeverageMilkTea { ... };
class BeverageGreenTea { ... };
class BeverageBlackTea {
IngredientBubble* bubble;
IngredientRedbean* redbean;
IngredientGreenbean* greenbean;
IngredientFairyGrass* fairyGrass;
}
```
每個飲料的class裡面都將每個配料定義為一個member如果客人有加配料的話我們就將配料實例化假設奶茶加了珍珠
```cpp
Ingredients
class BeverageMilkTea { ... };
class BeverageGreenTea { ... };
class BeverageBlackTea {
}
void addBubble() {
if (!bubble) bubble = new IngredientBubble();
}
};
```
要算價格的時候:
```cpp
class BeverageMilkTea { ... };
class BeverageGreenTea { ... };
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元
};
```