mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-17 06:15:09 +00:00
This commit is contained in:
1 parent
4108f86177
commit
1ea98bb8d5
8 files changed
+106
-86
No files matched your search
Binary file not shown.
|
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 132 KiB |
@@ -5,25 +5,34 @@ package com.iluwatar.chain {
|
||||
+ main(args : String[]) {static}
|
||||
}
|
||||
class OrcCommander {
|
||||
+ OrcCommander(handler : RequestHandler)
|
||||
+ handleRequest(req : Request)
|
||||
+ toString() : String
|
||||
- LOGGER : Logger {static}
|
||||
+ OrcCommander()
|
||||
+ canHandleRequest(req : Request) : boolean
|
||||
+ getPriority() : int
|
||||
+ handle(req : Request)
|
||||
+ name() : String
|
||||
}
|
||||
class OrcKing {
|
||||
- chain : RequestHandler
|
||||
- handlers : List<RequestHandler>
|
||||
+ OrcKing()
|
||||
- buildChain()
|
||||
+ makeRequest(req : Request)
|
||||
}
|
||||
class OrcOfficer {
|
||||
+ OrcOfficer(handler : RequestHandler)
|
||||
+ handleRequest(req : Request)
|
||||
+ toString() : String
|
||||
- LOGGER : Logger {static}
|
||||
+ OrcOfficer()
|
||||
+ canHandleRequest(req : Request) : boolean
|
||||
+ getPriority() : int
|
||||
+ handle(req : Request)
|
||||
+ name() : String
|
||||
}
|
||||
class OrcSoldier {
|
||||
+ OrcSoldier(handler : RequestHandler)
|
||||
+ handleRequest(req : Request)
|
||||
+ toString() : String
|
||||
- LOGGER : Logger {static}
|
||||
+ OrcSoldier()
|
||||
+ canHandleRequest(req : Request) : boolean
|
||||
+ getPriority() : int
|
||||
+ handle(req : Request)
|
||||
+ name() : String
|
||||
}
|
||||
class Request {
|
||||
- handled : boolean
|
||||
@@ -36,13 +45,11 @@ package com.iluwatar.chain {
|
||||
+ markHandled()
|
||||
+ toString() : String
|
||||
}
|
||||
abstract class RequestHandler {
|
||||
- LOGGER : Logger {static}
|
||||
- next : RequestHandler
|
||||
+ RequestHandler(next : RequestHandler)
|
||||
+ handleRequest(req : Request)
|
||||
# printHandling(req : Request)
|
||||
+ toString() : String {abstract}
|
||||
interface RequestHandler {
|
||||
+ canHandleRequest(Request) : boolean {abstract}
|
||||
+ getPriority() : int {abstract}
|
||||
+ handle(Request) {abstract}
|
||||
+ name() : String {abstract}
|
||||
}
|
||||
enum RequestType {
|
||||
+ COLLECT_TAX {static}
|
||||
@@ -52,10 +59,9 @@ package com.iluwatar.chain {
|
||||
+ values() : RequestType[] {static}
|
||||
}
|
||||
}
|
||||
OrcKing --> "-chain" RequestHandler
|
||||
RequestHandler --> "-next" RequestHandler
|
||||
OrcKing --> "-handlers" RequestHandler
|
||||
Request --> "-requestType" RequestType
|
||||
OrcCommander --|> RequestHandler
|
||||
OrcOfficer --|> RequestHandler
|
||||
OrcSoldier --|> RequestHandler
|
||||
OrcCommander ..|> RequestHandler
|
||||
OrcOfficer ..|> RequestHandler
|
||||
OrcSoldier ..|> RequestHandler
|
||||
@enduml
|
||||
Reference in new issue
Block a user