java-design-patterns/intercepting-filter/etc/intercepting-filter.urm.puml

88 lines
2.2 KiB
Plaintext
Raw Permalink Normal View History

2019-12-07 18:03:49 +02:00
@startuml
package com.iluwatar.intercepting.filter {
abstract class AbstractFilter {
- next : Filter
+ AbstractFilter()
+ AbstractFilter(next : Filter)
+ execute(order : Order) : String
+ getLast() : Filter
+ getNext() : Filter
+ setNext(filter : Filter)
}
class AddressFilter {
+ AddressFilter()
+ execute(order : Order) : String
}
class App {
+ App()
+ main(args : String[]) {static}
}
class ContactFilter {
+ ContactFilter()
+ execute(order : Order) : String
}
class DepositFilter {
+ DepositFilter()
+ execute(order : Order) : String
}
interface Filter {
+ execute(Order) : String {abstract}
+ getLast() : Filter {abstract}
+ getNext() : Filter {abstract}
+ setNext(Filter) {abstract}
}
class FilterChain {
- chain : Filter
+ FilterChain()
+ addFilter(filter : Filter)
+ execute(order : Order) : String
}
class FilterManager {
- filterChain : FilterChain
+ FilterManager()
+ addFilter(filter : Filter)
+ filterRequest(order : Order) : String
}
class NameFilter {
+ NameFilter()
+ execute(order : Order) : String
}
class Order {
- address : String
- contactNumber : String
- depositNumber : String
- name : String
- orderItem : String
+ Order()
+ Order(name : String, contactNumber : String, address : String, depositNumber : String, order : String)
+ getAddress() : String
+ getContactNumber() : String
+ getDepositNumber() : String
+ getName() : String
+ getOrderItem() : String
+ setAddress(address : String)
+ setContactNumber(contactNumber : String)
+ setDepositNumber(depositNumber : String)
+ setName(name : String)
+ setOrderItem(order : String)
}
class OrderFilter {
+ OrderFilter()
+ execute(order : Order) : String
}
~class DListener {
~ DListener()
+ actionPerformed(e : ActionEvent)
}
}
AbstractFilter --> "-next" Filter
DListener --+ Target
FilterManager --> "-filterChain" FilterChain
FilterChain --> "-chain" Filter
AbstractFilter ..|> Filter
AddressFilter --|> AbstractFilter
ContactFilter --|> AbstractFilter
DepositFilter --|> AbstractFilter
NameFilter --|> AbstractFilter
OrderFilter --|> AbstractFilter
@enduml