Files
java-design-patterns/view-helper/etc/view-helper.puml
T
a3fcc63167 feat: Implement View Helper pattern (#3278)
* #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>
2026-02-08 21:44:17 +02:00

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