mirror of
https://github.com/tiennm99/java-design-patterns.git
synced 2026-10-12 14:14:57 +00:00
* feat: implement Immutable pattern #3448 Add immutable/ module with ImmutableUser (final class, defensive copy, withAge wither method), App demo, JUnit 5 tests, PlantUML diagram, and README following project conventions. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: add withName and withRoles wither methods to ImmutableUser #3448 Every field now has a corresponding wither for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: add junit-jupiter-api dependency to immutable module #3448 Required for @Test annotations and assert methods in test code. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
d4a0ece9e3
commit
7473378ca2
7 files changed
+531
No files matched your search
@@ -0,0 +1,21 @@
|
||||
@startuml
|
||||
package com.iluwatar.immutable {
|
||||
class App {
|
||||
- LOGGER : Logger {static}
|
||||
+ App()
|
||||
+ main(args : String[]) {static}
|
||||
}
|
||||
class ImmutableUser {
|
||||
- name : String {final}
|
||||
- age : int {final}
|
||||
- roles : List<String> {final}
|
||||
+ ImmutableUser(name : String, age : int, roles : List<String>)
|
||||
+ getName() : String
|
||||
+ getAge() : int
|
||||
+ getRoles() : List<String>
|
||||
+ withAge(newAge : int) : ImmutableUser
|
||||
+ toString() : String
|
||||
}
|
||||
}
|
||||
App ..> ImmutableUser : creates
|
||||
@enduml
|
||||
Reference in new issue
Block a user