프 록 시 모드 를 사용 하여 C\#디자인 모델 개발 의 기초 튜 토리 얼 을 진행 합 니 다.
소프트웨어 개발 에서 일부 대상 은 창설 원가 가 높 고 방문 할 때 다른 프로 세 스 와 상호작용 을 해 야 하기 때문에 직접 방문 하면 시스템 속도 가 느 리 고 복잡 도가 커진다 는 등 문 제 를 초래 할 수 있다.이 때 프 록 시 모드 를 사용 하여 시스템 에 간접 층 을 추가 하고 간접 층 방문 대상 을 통 해 시스템 의 복잡성 을 숨 기 고 시스템 성능 을 향상 시 키 는 목적 을 달성 할 수 있다.
2.대리 모델 에 대한 상세 한 소개
프 록 시 모드 는 이 대상 에 대한 접근 을 제어 하기 위해 다른 대상 에 게 프 록 시 를 제공 합 니 다.그 구조 도 는 다음 과 같다.
Subject 는 RealSubject 와 Proxy 가 공유 하 는 인 터 페 이 스 를 정의 하여 RealSubject 를 사용 하 는 모든 곳 에서 Proxy 를 사용 할 수 있 도록 합 니 다.
RealSubject 는 Proxy 가 대표 하 는 실 체 를 정의 합 니 다.
Proxy 는 클 라 이언 트 가 사용 할 수 있 도록 RealSubject 를 제어 하 는 에이 전 트 를 정의 합 니 다.
대리 모드 는 사용 목적 에 따라 다음 과 같은 몇 가지 로 나 눌 수 있다.
원 격(Remote)에이전트:서로 다른 주소 공간 에 있 는 대상 에 게 국 역 대표 대상 을 제공 합 니 다.이 서로 다른 주소 공간 은 이 컴퓨터 일 수도 있 고 다른 컴퓨터 에 있 을 수도 있다.가장 전형 적 인 예 는 클 라 이언 트 가 웹 서비스 나 WCF 서 비 스 를 호출 하 는 것 이다4.567917.가상(Virtual)에이전트:필요 에 따라 자원 소모 가 비교적 큰 대상 을 만 들 고 대상 이 필요 할 때 만 진정 으로 만 들 수 있 습 니 다복사-on-write 대리:가상 에이전트 의 하나 로 복사(또는 복제 라 고 함)를 클 라 이언 트 가 필요 할 때 만 진정 으로 행동 할 수 있 습 니 다4.567917.보호(Protect or Access)에이전트:한 대상 의 방문 을 제어 하고 서로 다른 사용자 에 게 서로 다른 등급 의 사용 권한 을 제공 할 수 있 습 니 다
2.1 정의
대리 모델-특정한 대상 에 게 대 리 를 제공 하고 대리 대상 이 원래 대상 에 대한 인용 을 제어 하 는 것 이다.일부 상황 에서 한 고객 이 한 대상 을 직접 인용 하고 싶 지 않 거나 인용 할 수 없 으 며 대리 대상 은 클 라 이언 트 와 목표 대상 사이 에서 중개 역할 을 할 수 있다.예 를 들 어 컴퓨터 데스크 톱 의 단축 키 는 프 록 시 대상 이 고 단축 키 는 인 용 된 프로그램의 에이전트 입 니 다.
2.2 프 록 시 모드 구현
대리 모델 에 대한 설명 을 본 후에 다음 과 같은 생활 속 의 예 를 들 어 대리 모델 을 설명 한다.현실 생활 에서 동료 가 출국 하거나 친구 가 출국 하 는 상황 에서 우 리 는 이 친구 에 게 전자 제품 이나 화장품 등 을 가 져 다 달라 고 부탁 하 는 경우 가 많다.이 장면 에서 출국 하 는 친 구 는 대리 이다.그 는 그의 친구 의 대리 이다.그의 친구 가 외국 에 가서 물건 을 살 수 없 기 때문에 그 는 할 수 있 기 때문에 친구 들 이 모두 그 에 게 물건 을 가 져 다 달라 고 부탁 했다.다음은 이 장면 으로 대리 모델 을 실현 하고 구체 적 인 코드 는 다음 과 같다.
//
class Client
{
static void Main(string[] args)
{
//
Person proxy = new Friend();
proxy.BuyProduct();
Console.Read();
}
}
//
public abstract class Person
{
public abstract void BuyProduct();
}
//
public class RealBuyPerson : Person
{
public override void BuyProduct()
{
Console.WriteLine(" IPhone ");
}
}
//
public class Friend:Person
{
//
RealBuyPerson realSubject;
public override void BuyProduct()
{
Console.WriteLine(" ");
if (realSubject == null)
{
realSubject = new RealBuyPerson();
}
this.PreBuyProduct();
//
realSubject.BuyProduct();
this.PostBuyProduct();
}
//
public void PreBuyProduct()
{
// ,
Console.WriteLine(" , , : , : Iphone...........");
}
// ,
public void PostBuyProduct()
{
Console.WriteLine(" , , ;Iphone ..........");
}
}
위의 코드 에 상응하는 주석 이 있 는데,여기에 도 설명 이 많 지 않다.3.대리 모델 의 장단 점
대리 모델 을 전면적으로 분석 한 후에 이 모델 의 장단 점 을 살 펴 보 자.
장점:
프 록 시 모드 는 실제 호출 된 대상 을 격 리 시 켜 시스템 의 결합 도 를 어느 정도 낮 출 수 있 습 니 다.
대리 대상 은 클 라 이언 트 와 목표 대상 사이 에서 중개 역할 을 하면 목표 대상 에 대한 보 호 를 할 수 있다.프 록 시 대상 은 대상 에 게 요청 을 하기 전에 권한 검사 등 추가 작업 을 할 수 있 습 니 다.
단점:
클 라 이언 트 와 실제 테마 사이 에 프 록 시 대상 을 추가 하기 때문에 요청 한 처리 속도 가 느 려 집 니 다.
대리 류 를 실현 하 는 데 도 추가 적 인 업무 가 필요 하여 시스템 의 실현 복잡 도 를 증가 시 켰 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
디자인 모델 의 공장 모델, 단일 모델자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 공장 모드 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.