java-design-patterns/interpreter/etc/interpreter.urm.puml
2019-12-07 18:03:49 +02:00

51 lines
1.5 KiB
Plaintext

@startuml
package com.iluwatar.interpreter {
class App {
- LOGGER : Logger {static}
+ App()
+ getOperatorInstance(s : String, left : Expression, right : Expression) : Expression {static}
+ isOperator(s : String) : boolean {static}
+ main(args : String[]) {static}
}
abstract class Expression {
+ Expression()
+ interpret() : int {abstract}
+ toString() : String {abstract}
}
class MinusExpression {
- leftExpression : Expression
- rightExpression : Expression
+ MinusExpression(leftExpression : Expression, rightExpression : Expression)
+ interpret() : int
+ toString() : String
}
class MultiplyExpression {
- leftExpression : Expression
- rightExpression : Expression
+ MultiplyExpression(leftExpression : Expression, rightExpression : Expression)
+ interpret() : int
+ toString() : String
}
class NumberExpression {
- number : int
+ NumberExpression(number : int)
+ NumberExpression(s : String)
+ interpret() : int
+ toString() : String
}
class PlusExpression {
- leftExpression : Expression
- rightExpression : Expression
+ PlusExpression(leftExpression : Expression, rightExpression : Expression)
+ interpret() : int
+ toString() : String
}
}
MultiplyExpression --> "-leftExpression" Expression
MinusExpression --> "-leftExpression" Expression
PlusExpression --> "-leftExpression" Expression
MinusExpression --|> Expression
MultiplyExpression --|> Expression
NumberExpression --|> Expression
PlusExpression --|> Expression
@enduml