mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-05-14 10:58:42 +00:00
fb86ca1156
* #2151 add module and pom.xml * #2151 add Calculator Actions * #2151 add remaining mvi pattern classes (actions already implemented) * #2151 add Main and unit tests * add README.md and class diagrams * #2151 add module and pom.xml * #2151 add Calculator Actions * #2151 add remaining mvi pattern classes (actions already implemented) * #2151 add Main and unit tests * add README.md and class diagrams * fixes for lint errors * #2151 add module and pom.xml * #2151 add Calculator Actions * #2151 add remaining mvi pattern classes (actions already implemented) * #2151 add Main and unit tests * add README.md and class diagrams * fixes for lint errors * use Lombok @Data decorator and decouple View from ViewModel * add comments and documentation * fix checkstyle, the smart switch syntax was breaking checkstyle, so I had to change it back
74 lines
1.9 KiB
Plaintext
74 lines
1.9 KiB
Plaintext
@startuml
|
|
package com.iluwatar.model.view.intent.actions {
|
|
class AdditionCalculatorAction {
|
|
+ TAG : String {static}
|
|
+ AdditionCalculatorAction()
|
|
+ tag() : String
|
|
}
|
|
interface CalculatorAction {
|
|
+ tag() : String {abstract}
|
|
}
|
|
class DivisionCalculatorAction {
|
|
+ TAG : String {static}
|
|
+ DivisionCalculatorAction()
|
|
+ tag() : String
|
|
}
|
|
class MultiplicationCalculatorAction {
|
|
+ TAG : String {static}
|
|
+ MultiplicationCalculatorAction()
|
|
+ tag() : String
|
|
}
|
|
class SetVariableCalculatorAction {
|
|
+ TAG : String {static}
|
|
+ variable : Double
|
|
+ SetVariableCalculatorAction(variable : Double)
|
|
+ tag() : String
|
|
}
|
|
class SubtractionCalculatorAction {
|
|
+ TAG : String {static}
|
|
+ SubtractionCalculatorAction()
|
|
+ tag() : String
|
|
}
|
|
}
|
|
package com.iluwatar.model.view.intent {
|
|
class App {
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
class CalculatorModel {
|
|
+ output : Double
|
|
+ variable : Double
|
|
+ CalculatorModel(output : Double, variable : Double)
|
|
+ copy(output : Double, variable : Double) : CalculatorModel
|
|
}
|
|
class CalculatorView {
|
|
- LOGGER : Logger {static}
|
|
~ viewModel : CalculatorViewModel
|
|
+ CalculatorView()
|
|
~ add()
|
|
~ displayTotal()
|
|
~ divide()
|
|
~ multiply()
|
|
~ setVariable(value : Double)
|
|
~ subtract()
|
|
}
|
|
class CalculatorViewModel {
|
|
- model : CalculatorModel
|
|
+ CalculatorViewModel()
|
|
- add()
|
|
- divide()
|
|
+ getCalculatorModel() : CalculatorModel
|
|
~ handleAction(action : CalculatorAction)
|
|
- multiply()
|
|
- setVariable(variable : Double)
|
|
- subtract()
|
|
}
|
|
}
|
|
CalculatorView --> "-viewModel" CalculatorViewModel
|
|
CalculatorViewModel --> "-model" CalculatorModel
|
|
AdditionCalculatorAction ..|> CalculatorAction
|
|
DivisionCalculatorAction ..|> CalculatorAction
|
|
MultiplicationCalculatorAction ..|> CalculatorAction
|
|
SetVariableCalculatorAction ..|> CalculatorAction
|
|
SubtractionCalculatorAction ..|> CalculatorAction
|
|
@enduml |