Proxy Pattern
This commit is contained in:
18
design-pattern/src/Proxy/Application.java
Normal file
18
design-pattern/src/Proxy/Application.java
Normal 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();
|
||||
}
|
||||
}
|
||||
3
design-pattern/src/Proxy/Proxy
Normal file
3
design-pattern/src/Proxy/Proxy
Normal file
@@ -0,0 +1,3 @@
|
||||
Proxy Pattern
|
||||
- 대리인 내세우기
|
||||
- 프록시 패턴을 통해 작업을 나누어 구현
|
||||
20
design-pattern/src/Proxy/Proxy.java
Normal file
20
design-pattern/src/Proxy/Proxy.java
Normal 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();
|
||||
}
|
||||
}
|
||||
13
design-pattern/src/Proxy/RealSubject.java
Normal file
13
design-pattern/src/Proxy/RealSubject.java
Normal 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");
|
||||
}
|
||||
}
|
||||
9
design-pattern/src/Proxy/Subject.java
Normal file
9
design-pattern/src/Proxy/Subject.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package Proxy;
|
||||
|
||||
public interface Subject {
|
||||
|
||||
// 리소스가 적게 드는 일
|
||||
void action1();
|
||||
// 리소스가 많이 드는 일 - 네트워크 / 메모리
|
||||
void action2();
|
||||
}
|
||||
Reference in New Issue
Block a user