Proxy Pattern

This commit is contained in:
kim
2021-01-20 23:13:01 +09:00
parent b23a62120b
commit 77b361ba96
5 changed files with 63 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
package Proxy;
public class Application {
public static void main(String[] args) {
Subject real = new RealSubject();
Subject proxy1 = new Proxy(real);
Subject proxy2 = new Proxy(real);
Subject proxy3 = new Proxy(real);
proxy1.action1();
proxy2.action1();
proxy3.action1();
proxy1.action2();
proxy2.action2();
proxy3.action2();
}
}

View File

@@ -0,0 +1,3 @@
Proxy Pattern
- 대리인 내세우기
- 프록시 패턴을 통해 작업을 나누어 구현

View File

@@ -0,0 +1,20 @@
package Proxy;
public class Proxy implements Subject{
private final Subject realSubject;
public Proxy(Subject realSubject) {
this.realSubject = realSubject;
}
@Override
public void action1() {
System.out.println("간단한 업무 by proxy");
}
@Override
public void action2() {
this.realSubject.action2();
}
}

View File

@@ -0,0 +1,13 @@
package Proxy;
public class RealSubject implements Subject{
@Override
public void action1() {
System.out.println("간단한 업무 by real");
}
@Override
public void action2() {
System.out.println("복잡한 업무 by real");
}
}

View File

@@ -0,0 +1,9 @@
package Proxy;
public interface Subject {
// 리소스가 적게 드는 일
void action1();
// 리소스가 많이 드는 일 - 네트워크 / 메모리
void action2();
}