Notice
Recent Posts
Recent Comments
Link
투케이2K
58. (TWOK/ALGORITHM) [Java] 패턴 - 프록시 패턴 (Proxy Pattern) 구현 실시 본문
[환경 설정 및 설명]
언 어 : Java
설 명 : 패턴 - 프록시 패턴 (Proxy Pattern) 구현 실시
[클래스 구조]
[요약 설명]
/**
* // -----------------------------------------
* TODO [프록시 패턴 설정]
* // -----------------------------------------
* 1. 프록시 (Proxy) : 대리인이라는 뜻으로 무엇인가를 대신 처리하는 의미입니다.
* // -----------------------------------------
* 2. 프록시 패턴 (Proxy Pattern) : 클라이언트가 타깃에 접근하는 방식을 중간에서 변경해주는 역할을 합니다
* // -----------------------------------------
* 3. 프록시 패턴은 기능 자체에는 관여하지 않고 접근하는 방법을 제어해줍니다
* // -----------------------------------------
* 4. 참고 예제 로직 :
* - 클라이언트는 >> 프록시 접속
* - 프록시는 클라이언트 요청에 따라서 매핑되는 타깃으로 변경
* - 원본 타깃은 요청에 따라서 필요한 로직 수행 실시
* // -----------------------------------------
* */
[클라이언트 : 소스 코드]
// --------------------------------------------
/**
* // -----------------------------------------
* TODO [프록시 패턴 설정]
* // -----------------------------------------
* 1. 프록시 (Proxy) : 대리인이라는 뜻으로 무엇인가를 대신 처리하는 의미입니다.
* // -----------------------------------------
* 2. 프록시 패턴 (Proxy Pattern) : 클라이언트가 타깃에 접근하는 방식을 중간에서 변경해주는 역할을 합니다
* // -----------------------------------------
* 3. 프록시 패턴은 기능 자체에는 관여하지 않고 접근하는 방법을 제어해줍니다
* // -----------------------------------------
* 4. 참고 예제 로직 :
* - 클라이언트는 >> 프록시 접속
* - 프록시는 클라이언트 요청에 따라서 매핑되는 타깃으로 변경
* - 원본 타깃은 요청에 따라서 필요한 로직 수행 실시
* // -----------------------------------------
* */
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[A_Main >> onCreate() :: [클라이언트] >> [프록시] 이미지 표시 요청 실시]");
Log.d("//===========//","================================================");
Log.i("---","---");
// [클라이언트 >> 프록시 요청]
Image image = new Proxy_Image("twok.png");
image.showImage();
// --------------------------------------------
[프록시 : 소스 코드]
package com.app.testwebview.ProxyPattern;
import android.util.Log;
public class Proxy_Image implements Image { // [이미지 인터페이스 상속]
// [전역 변수 선언 실시]
private String fileName = "";
private Image image = null;
// [클래스 생성자 초기화]
public Proxy_Image(String fileName){
this.fileName = fileName;
}
// [이미지 인터페이스 메소드 재정의 실시]
@Override
public void showImage() {
Log.i("---","---");
Log.d("//===========//","================================================");
Log.i("","\n"+"[Proxy_Image >> showImage() :: [프록시] >> [원본] 이미지 접근 및 로직 처리 수행 실시]");
Log.d("//===========//","================================================");
Log.i("---","---");
// [원본 이미지 접근을 위해 객체 생성 실시]
if (image == null){
image = new Origin_Image(fileName);
}
// [원본 이미지 호출 실시]
image.showImage();
}
}
[원본 : 소스 코드]
package com.app.testwebview.ProxyPattern;
import android.util.Log;
public class Origin_Image implements Image { // [이미지 인터페이스 상속]
// [전역 변수 선언 실시]
private String fileName = "";
// [클래스 생성자 초기화]
public Origin_Image(String fileName){
this.fileName = fileName;
// [로딩 메소드 호출 실시]
loadingImage();
}
// [로딩 메소드 정의 실시]
private void loadingImage(){
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[Origin_Image >> loadingImage() :: [원본] 이미지 로딩 수행 실시]");
Log.w("//===========//","================================================");
Log.i("---","---");
}
// [이미지 인터페이스 메소드 재정의 실시]
@Override
public void showImage() {
Log.i("---","---");
Log.w("//===========//","================================================");
Log.i("","\n"+"[Origin_Image >> showImage() :: [원본] 이미지 표시 수행 실시]");
Log.i("","\n"+"[fileName :: "+String.valueOf(fileName)+"]");
Log.w("//===========//","================================================");
Log.i("---","---");
}
}
[인터페이스 : 소스 코드]
package com.app.testwebview.ProxyPattern;
public interface Image {
// [메소드 헤더 선언 실시]
public void showImage();
}
[결과 출력]
반응형
'투케이2K 알고리즘' 카테고리의 다른 글
Comments