Files
JanFidor fb86ca1156 feature: #2151 Feature/mvi pattern (#2177)
* #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
2023-01-21 11:45:07 +02:00

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