2016-08-30 13:29:12 +02:00
|
|
|
@startuml
|
|
|
|
package com.iluwatar.singleton {
|
2016-09-18 17:51:09 +03:00
|
|
|
class App {
|
2016-11-26 12:51:06 +01:00
|
|
|
- LOGGER : Logger {static}
|
2016-09-18 17:51:09 +03:00
|
|
|
+ App()
|
|
|
|
+ main(args : String[]) {static}
|
|
|
|
}
|
2016-11-26 12:51:06 +01:00
|
|
|
enum EnumIvoryTower {
|
|
|
|
+ INSTANCE {static}
|
|
|
|
+ toString() : String
|
|
|
|
+ valueOf(name : String) : EnumIvoryTower {static}
|
|
|
|
+ values() : EnumIvoryTower[] {static}
|
2016-08-30 13:29:12 +02:00
|
|
|
}
|
2016-09-18 17:51:09 +03:00
|
|
|
class InitializingOnDemandHolderIdiom {
|
|
|
|
- InitializingOnDemandHolderIdiom()
|
|
|
|
+ getInstance() : InitializingOnDemandHolderIdiom {static}
|
2016-08-30 13:29:12 +02:00
|
|
|
}
|
2016-11-26 12:51:06 +01:00
|
|
|
-class HelperHolder {
|
|
|
|
- INSTANCE : InitializingOnDemandHolderIdiom {static}
|
|
|
|
- HelperHolder()
|
2016-08-30 13:29:12 +02:00
|
|
|
}
|
|
|
|
class IvoryTower {
|
|
|
|
- INSTANCE : IvoryTower {static}
|
|
|
|
- IvoryTower()
|
|
|
|
+ getInstance() : IvoryTower {static}
|
|
|
|
}
|
2016-11-26 12:51:06 +01:00
|
|
|
class ThreadSafeDoubleCheckLocking {
|
|
|
|
- instance : ThreadSafeDoubleCheckLocking {static}
|
|
|
|
- ThreadSafeDoubleCheckLocking()
|
|
|
|
+ getInstance() : ThreadSafeDoubleCheckLocking {static}
|
2016-09-18 17:51:09 +03:00
|
|
|
}
|
2016-11-26 12:51:06 +01:00
|
|
|
class ThreadSafeLazyLoadedIvoryTower {
|
|
|
|
- instance : ThreadSafeLazyLoadedIvoryTower {static}
|
|
|
|
- ThreadSafeLazyLoadedIvoryTower()
|
|
|
|
+ getInstance() : ThreadSafeLazyLoadedIvoryTower {static}
|
2016-08-30 13:29:12 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
IvoryTower --> "-INSTANCE" IvoryTower
|
|
|
|
ThreadSafeDoubleCheckLocking --> "-instance" ThreadSafeDoubleCheckLocking
|
|
|
|
ThreadSafeLazyLoadedIvoryTower --> "-instance" ThreadSafeLazyLoadedIvoryTower
|
|
|
|
HelperHolder ..+ InitializingOnDemandHolderIdiom
|
|
|
|
HelperHolder --> "-INSTANCE" InitializingOnDemandHolderIdiom
|
|
|
|
@enduml
|