Example: 漢堡點餐系統
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| @startuml Example-Burgers-Ordering-System-Decorator-Pattern
interface Food { + getDescription() }
abstract class Burger { # name + getDescription() }
abstract class Ingredient { # name # food
+ getDescription() + customized() # changeDefaultIfDemanded() - getIngredientName() }
class Program { # demand
+ makeBigMac() - getBurgerDescription() - subLastPunctuation() }
Program -> Food
Food <|.. Burger Burger <|-- BigMac
Food <|.. Ingredient Ingredient o-- Food Ingredient <|-- Bread Ingredient <|-- Beef Ingredient <|-- Cheese Ingredient <|-- Lettuce Ingredient <|-- Pickle Ingredient <|-- Salad
@enduml
|
ʕ •ᴥ•ʔ:若不熟悉 UML 類別圖,可參考UML類別圖說明。