Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 정규식 활용
- InfluxDB
- 백준
- python os
- grafana dashboard
- c++ 정규식
- semanage
- subporcess path
- python subprocess
- CentOS7
- linux시간으로 변경
- c3 step graph
- snmp
- python popen
- g++ 업데이트
- selinux port 등록
- snmp test
- telegraf
- 정규식 문자열 출력
- c3 second
- c3 축 가리기
- 정규식 컴파일
- influxdb 설치
- centos pyhon 설치
- c3 초
- 1697
- gcc regex
- c3 축 없애기
- gcc 업데이트
- regex_search
Archives
- Today
- Total
리셋 되지 말자
프록시 패턴(Proxy Pattern) 본문
프록시란
프록시는 대리자, 대변인이라는 뜻을 가진다. 다른 누군가를 대신해 그 역할을 수행한다고 할 수 있다.
프록시가 없는 예제-runSomething() 메서드르 직접 호출
- Service.java
package proxyPattern;
public class Service {
public String runSomething() {
return "Service!!";
}
}
- ClientWithNoProxy.java
package proxyPattern;
public class ClientWithNoProxy {
public static void main(String args[]) {
Service service = new Service();
System.out.println(service.runSomething());
}
}
프록시가 적용된 예제
- IService.java
package proxyPattern;
public interface IService {
public abstract String runSoemthing();
}
- Service.java
package proxyPattern;
public class Service implements IService{
public String runSomething() {
return "Service!!!";
}
}
- Proxy.java
package proxyPattern;
public class Proxy implements IService{
IService service1;
public String runSomething() {
System.out.println("호출에 대한 흐름 제어가 주목적, 반환 결과를 그대로 전달");
service1 = new Service();
return service1.runSomething();
}
}
- ClientWithProxy.java
package proxyPattern;
public class ClientWIthProxy {
public static void main(String[] args) {
//프록시를 이용한 호출
IService proxy = new Proxy();
System.out.println(proxy.runSomething());
}
}
- 결과
프록시 패턴의 중요 포인트
- 대리자는 실제서비스와 같은 이름의 메서드를 구현한다. 이때 '인터페이스'를 사용
- 대리자는 실제 서비스에 대한 참조 변수를 갖는다.
- 대리자는 실제 서비스의 같은 이름을 가진 메서드를 호출하고 그 값을 클라이언트에게 돌려준다.
- 대리자는 실제 서비스의 메서드 호출 전후에 별도의 로직을 수행할 수도 있다.
핵심 포인트
프록시 패턴은 실제 서비스 메서드의 반환값에 가감(반환값을 조절하는 등)하는것이 목적이 아닌, '흐름 제어'가 목적이다.
프록시 패턴은 개방 폐쇄 원칙(OCP)와 의존 역전 법칙(DIP)가 적용된 설계 패턴이다.
'Java(폐지) > 디자인 패턴' 카테고리의 다른 글
템플릿 메서드 패턴(Template Method Pattern) (0) | 2020.08.04 |
---|---|
싱글톤 패턴(Singleton Pattern) (0) | 2020.08.04 |
데코레이터 패턴(Decorator Pattern) (0) | 2020.08.04 |
어댑터 패턴(Adapter Pattern) (0) | 2020.07.21 |
디자인 패턴 이란? (0) | 2020.07.21 |
Comments