이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!