mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-05-24 02:24:51 +00:00
* #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
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 87 KiB |
@@ -0,0 +1,74 @@
|
||||
@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
|
||||
Reference in New Issue
Block a user