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
| @startuml
class Context { + text: string + __construct(string text) }
interface Expression { + interpret(Context context): Context + execute(string message) }
class NonTerminalExpression { + isSpace(string character) }
class TerminalExpression { # mapping: array
- encode(string character) - typeSpace() }
Context <- Expression Expression <|-- NonTerminalExpression Expression <|-- TerminalExpression
class Program { + encode(string text) }
NonTerminalExpression <-- Program TerminalExpression <-- Program
@enduml
|
ʕ •ᴥ•ʔ:若不熟悉 UML 類別圖,可參考UML類別圖說明。