48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
@startuml
|
|
package com.iluwatar.unitofwork {
|
|
class App {
|
|
+ App()
|
|
+ main(args : String[]) {static}
|
|
}
|
|
interface IUnitOfWork<T> {
|
|
+ DELETE : String {static}
|
|
+ INSERT : String {static}
|
|
+ MODIFY : String {static}
|
|
+ commit() {abstract}
|
|
+ registerDeleted(T) {abstract}
|
|
+ registerModified(T) {abstract}
|
|
+ registerNew(T) {abstract}
|
|
}
|
|
class Student {
|
|
- address : String
|
|
- id : Integer
|
|
- name : String
|
|
+ Student(id : Integer, name : String, address : String)
|
|
+ getAddress() : String
|
|
+ getId() : Integer
|
|
+ getName() : String
|
|
}
|
|
class StudentDatabase {
|
|
+ StudentDatabase()
|
|
+ delete(student : Student)
|
|
+ insert(student : Student)
|
|
+ modify(student : Student)
|
|
}
|
|
class StudentRepository {
|
|
- LOGGER : Logger {static}
|
|
- context : Map<String, List<Student>>
|
|
- studentDatabase : StudentDatabase
|
|
+ StudentRepository(context : Map<String, List<Student>>, studentDatabase : StudentDatabase)
|
|
+ commit()
|
|
- commitDelete()
|
|
- commitInsert()
|
|
- commitModify()
|
|
- register(student : Student, operation : String)
|
|
+ registerDeleted(student : Student)
|
|
+ registerModified(student : Student)
|
|
+ registerNew(student : Student)
|
|
}
|
|
}
|
|
StudentRepository --> "-studentDatabase" StudentDatabase
|
|
StudentRepository ..|> IUnitOfWork
|
|
@enduml |