mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-09-13 16:19:22 +00:00
* #1263 - creating new module for view-helper * #1263 - creating Product and ProductViewModel * #1263 - creating interfaces for View and ViewHelper * #1263 - creating ProductViewHelper and its test * #1263 - creating Console View for Product * #1263 - creating ProductController * #1263 - creating main App and its test * #1263 - adding license header * #1263 - keeping module in alphabetical order * #1263 - creating README and diagrams * #1263 apply spotless --------- Co-authored-by: Ilkka Seppälä <iluwatar@users.noreply.github.com>
45 lines
948 B
Plaintext
45 lines
948 B
Plaintext
@startuml
|
|
package com.iluwatar.viewhelper {
|
|
interface View<T> {
|
|
+render(T model)
|
|
}
|
|
|
|
interface ViewHelper<S, T> {
|
|
+prepare(S source): T
|
|
}
|
|
|
|
class Product {
|
|
-name: String
|
|
-price: BigDecimal
|
|
-releaseDate: LocalDate
|
|
-discounted: boolean
|
|
}
|
|
|
|
class ProductViewModel {
|
|
-name: String
|
|
-price: String
|
|
-releasedDate: String
|
|
}
|
|
|
|
class ProductViewHelper {
|
|
+prepare(Product): ProductViewModel
|
|
}
|
|
|
|
class ConsoleProductView {
|
|
+render(ProductViewModel)
|
|
}
|
|
|
|
class ProductController {
|
|
-helper: ViewHelper<Product, ProductViewModel>
|
|
-view: View<ProductViewModel>
|
|
+handle(Product)
|
|
}
|
|
}
|
|
Product --> ProductViewHelper
|
|
ProductViewHelper ..|> ViewHelper
|
|
ConsoleProductView ..|> View
|
|
ProductViewHelper --> ProductViewModel
|
|
ProductController --> ProductViewHelper
|
|
ProductController --> ConsoleProductView
|
|
|
|
@enduml |