diff --git a/hw-03/project-root/app/src/main/java/org/example/App.java b/hw-03/project-root/app/src/main/java/org/example/App.java index 847e3c4..adfe954 100644 --- a/hw-03/project-root/app/src/main/java/org/example/App.java +++ b/hw-03/project-root/app/src/main/java/org/example/App.java @@ -7,6 +7,7 @@ import org.example.adapter.*; import org.example.builder.*; import org.example.chain.*; import org.example.decorator.*; +import org.example.proxy.*; public class App { public static void main(String[] args) { @@ -18,6 +19,7 @@ public class App { checkBuilderPattern(); checkChainPattern(); checkDecoratorPattern(); + checkProxyPattern(); } private static void checkAdapterPattern() { @@ -48,4 +50,11 @@ public class App { decorator.operation(); } + + private static void checkProxyPattern() { + Service service = new ConcreteService(); + Service proxy = new ServiceProxy(service); + + proxy.execute(); + } } diff --git a/hw-03/project-root/app/src/main/java/org/example/proxy/ConcreteService.java b/hw-03/project-root/app/src/main/java/org/example/proxy/ConcreteService.java new file mode 100644 index 0000000..bb14707 --- /dev/null +++ b/hw-03/project-root/app/src/main/java/org/example/proxy/ConcreteService.java @@ -0,0 +1,10 @@ +package org.example.proxy; + +/** Concrete Service */ +public class ConcreteService implements Service { + + @Override + public void execute() { + System.out.println("ConcreteService выполняет операцию"); + } +} diff --git a/hw-03/project-root/app/src/main/java/org/example/proxy/RealService.java b/hw-03/project-root/app/src/main/java/org/example/proxy/RealService.java deleted file mode 100644 index e69de29..0000000 diff --git a/hw-03/project-root/app/src/main/java/org/example/proxy/Service.java b/hw-03/project-root/app/src/main/java/org/example/proxy/Service.java index e69de29..fdccfd3 100644 --- a/hw-03/project-root/app/src/main/java/org/example/proxy/Service.java +++ b/hw-03/project-root/app/src/main/java/org/example/proxy/Service.java @@ -0,0 +1,6 @@ +package org.example.proxy; + +/** Service */ +public interface Service { + void execute(); +} diff --git a/hw-03/project-root/app/src/main/java/org/example/proxy/ServiceProxy.java b/hw-03/project-root/app/src/main/java/org/example/proxy/ServiceProxy.java index e69de29..036a09a 100644 --- a/hw-03/project-root/app/src/main/java/org/example/proxy/ServiceProxy.java +++ b/hw-03/project-root/app/src/main/java/org/example/proxy/ServiceProxy.java @@ -0,0 +1,17 @@ +package org.example.proxy; + +/** Service Proxy */ +public class ServiceProxy implements Service { + + public ServiceProxy(Service service) { + this.service = service; + } + + @Override + public void execute() { + System.out.println("ServiceProxy разрешает выполнение операции"); + service.execute(); + } + + private final Service service; +}