類別圖:摩斯電碼 (解譯器模式)

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類別圖說明

Share