> Java > java지도 시간 > Java 프록시 모드 학습

Java 프록시 모드 학습

黄舟
풀어 주다: 2017-10-13 10:31:53
원래의
1031명이 탐색했습니다.

이 글은 주로 Java 디자인 패턴 학습에서 프록시 모드 관련 정보를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.

프록시 모드(Proxy): 다른 객체 프록시에 대한 액세스 제어 방법을 제공합니다. 이 개체에.

에이전시 모델 구조 차트

시뮬레이션 요구 사항: 3반의 Xiao Zhang은 1반의 Xiao Hong을 좋아하지만 Xiao Hong을 알지 못하기 때문에 1반의 Xiao Ming에게 Xiao Hong에게 선물을 주라고 맡깁니다.

1: Xiao Zhang과 Xiao Ming이 모두 구현할 수 있는 인터페이스를 만듭니다.


package ProxyModel;

/**
 * 总的接口
 * @author 我不是张英俊
 *
 */
interface ISendGift {

  void GiveDolls();
  void GiveFlowers();
  void GiveChocolate();
}
로그인 후 복사

2: Xiao Zhang이 선물을 보낼 수 있도록 허용합니다.


package ProxyModel;

/**
 * 
 * 小张是送鲜花的本体,送其实是小张送的,小明只是借助小张的送的鲜花去给小红
 * @author 我不是张英俊
 *
 */
public class Pursuit implements ISendGift{

  String mm;
  public Pursuit(String mm){
    this.mm=mm;
  }
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"洋娃娃");
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"鲜花");
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    System.out.println("送"+mm+"巧克力");
  }

}
로그인 후 복사

3: Xiao Zhang을 통해 Xiao Ming이 보낸 선물을 깨닫고 Xiao Hong에게 전달합니다.


package ProxyModel;

/**
 * 小明转送小红礼物的完成方法,其实是借助小张送的礼物来完成的,此处小明即为代理
 * @author 我不是张英俊
 *
 */
public class Proxy implements ISendGift{

  Pursuit gg;
  public Proxy(String mm){
    gg=new Pursuit(mm);
  }
  
  @Override
  public void GiveDolls() {
    // TODO Auto-generated method stub
    gg.GiveDolls();
  }

  @Override
  public void GiveFlowers() {
    // TODO Auto-generated method stub
    gg.GiveFlowers();
  }

  @Override
  public void GiveChocolate() {
    // TODO Auto-generated method stub
    gg.GiveChocolate();
  }

}
로그인 후 복사

4: 테스트 카테고리:


package ProxyModel;

/**
 * 需求,3班小张喜欢1班小红,但是不认识小红,委托1班小明给小红送东西
 * 总结:小张送小红礼物,小张送,然后小明通过小张接过送的礼物,给小红,
 * 其实小明是借助小张送的礼物,来代理完成送礼物的操作。
 * 代理模式
 * @author 我不是张英俊
 *
 */
public class test {

  public static void main(String[] args) {
    String mm="小红";
    Proxy xiaoming=new Proxy(mm);
    xiaoming.GiveDolls();
    xiaoming.GiveFlowers();
    xiaoming.GiveChocolate();

  }

}
로그인 후 복사

5: Console

작은 빨간 인형 보내기
작은 빨간 꽃 보내기
작은 빨간 초콜릿 보내기

요약:

프록시 모드에 적용 가능한 시나리오

1: 서로 다른 주소 공간에 있는 개체의 로컬 표현을 제공하는 원격 프록시입니다. 이는 개체가 다른 주소 공간에 존재한다는 사실을 숨깁니다.

2: 가상 에이전트는 필요에 따라 생성하기에는 비용이 많이 드는 개체입니다. 인스턴스화하는 데 오랜 시간이 걸리는 실제 개체를 저장하는 데 사용합니다.

3: 실제 개체에 액세스할 때 권한을 제어하는 ​​데 사용되는 보안 프록시입니다.

4: 지능형 안내는 실제 개체가 호출되면 에이전트가 다른 작업을 처리한다는 의미입니다.

장점:

1: 프록시 모드는 호출자와 호출 수신자를 조정하여 시스템 결합을 어느 정도 줄일 수 있습니다.

2: 프록시 개체는 클라이언트와 대상 개체 사이에서 중개 역할을 할 수 있습니다. 대상물을 보호하는 역할을 하는 것입니다.

단점:

1: 클라이언트와 실제 개체 사이에 프록시 개체가 추가되므로 일부 유형의 프록시 패턴으로 인해 요청 처리 속도가 느려질 수 있습니다.

2: 프록시 패턴을 구현하려면 추가 작업이 필요합니다. 일부 프록시 패턴은 구현하기가 매우 복잡합니다.

위 내용은 Java 프록시 모드 학습의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿