유일한 차이점은 생성자를 사용하고 여기에 이미지를로드하는 기능 방법을 호출하는 것입니다. 이 프록시가 아닌 MainFunctionalityClass의 구현으로 인터페이스를 인스턴스화하고 해당 구현이이 생성자 내부의 이미지를로드하는 경우 그러나 프록시를 사용하면 MainFunctionalityClass에 래퍼를 적용하고 이번에는 호출 된 생성자가 Proxy의 생성자이므로 MainFunctionalityClass 생성자는 여기에서 건너 뜁니다.
class Proxy implements ICommon{
private String var;
Proxy(String var){
this.var = var; //NO call to big functionality, not costly
}
callMainFunctionality(){
//uses var, MainFunctionalityClass() called
// Costly call but it is called on demand,
}
class MainClassTest{
public static void main(String[] args){
ICommon p = new Proxy("abcd");
p.callMainFunctionality();
}
}
프록시 디자인 패턴은
- 가 느리게 수요에 큰 기능을 넣기에 사용할 수 있습니다로
class MainFunctionalityClass implements ICommon{
MainFunctionalityClass(){
loadMainFunctionality(); // Costly call
}
}
는 프록시 클래스가 정의된다. (안 위에서 설명) 클라이언트의 작업
우리가 먼저 클래스 모두에서 동일한 인터페이스을 사용하기 위해 다음 프록시 클래스 구성을 사용할 필요가 그것을 구현하는 방법을 제한
.
awwww right..thank you all !! – Bubu
고마워요! 이것은 프록시 패턴의 올바른 의도 된 구현입니까? – Bubu