Proxy Design Pattern java implementation
./mvnw clean ; ./mvnw test -UOne of proxy pattern usage can be for example cached implementation:
                   +----------------------+     +--------+
                   | Gateway (shared API) |<----| Client |
                   +----------------------+     +--------+
                              ^
                              |
             +----------------+---------------+
             |                                |
+-------------------------+      +----------------------------+
| GatewayImpl (immutable) |      | GatewayCachedProxy (proxy) |
+-------------------------+      +----------------------------+