티스토리 뷰
프록시 proxy ?
대리, 대리(행위)나 대리권, 대리 투표, 대리인 등을 뜻한다.
프록시 패턴(proxy pattern)
프록시는 다른 무언가와 이어지는 인터페이스의 역할을 하는 클래스인데, 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용한다고 한다. 또 프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용된다고 한다.
아래 이미지를 보면 Aunty가 Bride 대신 모든 것을 처리해주고있는데 프록시가 이러한 역활을 한다고 보면 조금 쉽게 생각할 수 있는 것 같다.. (그래도 어려움🙄)
(출처: https://medium.com/@mithunsasidharan/understanding-the-proxy-design-pattern-5e63fe38052a)
아래 프록시 패턴 예제는 위키백과에 나와있다.
import java.util.*;
interface Image {
public void displayImage();
}
//on System A
class RealImage implements Image {
private String filename;
public RealImage(String filename) {
this.filename = filename;
loadImageFromDisk();
}
private void loadImageFromDisk() {
System.out.println("Loading " + filename);
}
@Override
public void displayImage() {
System.out.println("Displaying " + filename);
}
}
//on System B
class ProxyImage implements Image {
private String filename;
private Image image;
public ProxyImage(String filename) {
this.filename = filename;
}
@Override
public void displayImage() {
if (image == null)
image = new RealImage(filename);
image.displayImage();
}
}
class ProxyExample {
public static void main(String[] args) {
Image image1 = new ProxyImage("HiRes_10MB_Photo1");
Image image2 = new ProxyImage("HiRes_10MB_Photo2");
image1.displayImage(); // loading necessary
image2.displayImage(); // loading necessary
}
}
/* 실행 결과
Loading HiRes_10MB_Photo1
Displaying HiRes_10MB_Photo1
Loading HiRes_10MB_Photo2
Displaying HiRes_10MB_Photo2
*/
'study > Web' 카테고리의 다른 글
디자인 패턴 - MVC 패턴 (MVC pattern) (0) | 2022.10.31 |
---|---|
디자인 패턴 - 반복자 패턴(iterator pattern) (0) | 2022.10.23 |
디자인 패턴 - 옵저버 패턴(observer pattern) (0) | 2022.10.13 |
디자인 패턴 - 전략 패턴(strategy pattern) (0) | 2022.10.13 |
디자인 패턴 - 팩토리 패턴 (factory pattern) (0) | 2022.10.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- python3
- 웹페이지
- 검색 결과 내 페이지네이션
- API
- 암호화
- 디자인 패턴
- authenticate()
- 톰캣
- Python
- Java
- django
- git공부
- Django tutorial
- 환경 변수 설정
- 회원 로그인
- git
- 면접을 위한 CS 전공 지식 노트
- path variable
- 혼자 공부하는 파이썬
- 커맨드 객체
- musma
- django-environ
- 회원가입
- 한글 형태소 분석기
- Spring
- error: failed to push some refs to 'https://github.com/
- django.contrib.auth
- Magazine K
- 배열
- git 공부
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함