C\#디자인 모델 시리즈 튜 토리 얼-프 록 시 모드
이 대상 에 대한 접근 을 제어 하기 위해 다른 대상 에 게 에이 전 트 를 제공 합 니 다.
해결 하 는 문제:직접 방문 대상 이 어렵 거나 직접 방문 하면 사용자 나 시스템 에 일련의 문 제 를 가 져 올 수 있다.이렇게 하면 클 라 이언 트(호출 자)에 게 실제 대상 과 직접 상호작용 을 하지 않 아 도 되 고 호출 자 와 실제 대상 의 결합 을 해제 합 니 다.
2.모드 속 캐릭터
2.1 추상 적 인 실체(Subject):실제 실체(RealSubject)와 프 록 시(Proxy)의 공공 인 터 페 이 스 를 정의 합 니 다.그러면 언제든지 실제 실체(RealSubject)를 사용 하 는 곳 에서 프 록 시(Proxy)를 사용 합 니 다.
2.2 프 록 시(Proxy):프 록 시가 실제 실체 에 직접 접근 할 수 있 도록 인용 을 저장 하고 Subject 의 인터페이스 와 같은 인 터 페 이 스 를 제공 합 니 다.그러면 프 록 시가 실제 실 체 를 대체 할 수 있 습 니 다.
2.3 실제 실체(RealSubject):Proxy 가 대표 하 는 실제 실 체 를 정의 합 니 다.
3.패턴 판독
3.1 프 록 시 모드 의 도표
3.2 프 록 시 모드 의 코드 구현
3.2.1 추상 적 인 실체,실제 실체 와 대리 의 공공 인 터 페 이 스 를 정의 한다.
/// <summary>
/// ,
/// </summary>
public interface ISubject
{
void Function1();
void Function2();
}
3.2.2 진실 한 실체,진정한 기능 실현 자
/// <summary>
/// ,
/// </summary>
public class RealSubject:ISubject
{
public void Function1()
{
Console.WriteLine("This is the first function.");
}
public void Function2()
{
Console.WriteLine("This is the second function.");
}
}
3.2.3 대리,실제 실 체 를 제어 하고 방문 하 는 데 사용
/// <summary>
/// ,
/// </summary>
public class Proxy : ISubject
{
/// <summary>
/// , 。
/// </summary>
private RealSubject realSubject;
public Proxy()
{
realSubject = new RealSubject();
}
/// <summary>
/// Subject , RealSubject Function1()
/// </summary>
public void Function1()
{
realSubject.Function1();
}
/// <summary>
/// Subject , RealSubject Function2()
/// </summary>
public void Function2()
{
realSubject.Function2();
}
}
3.2.4 클 라 이언 트 의 호출
class Program
{
static void Main(string[] args)
{
//
ISubject subjectProxy = new Proxy();
//
subjectProxy.Function1();
subjectProxy.Function2();
Console.Read();
}
}
3.2.5 운행 결과4.모델 총화
4.1 장점
4.1.1 클 라 이언 트 에 게 실제 대상 의 세부 사항 과 복잡성 을 숨 겼 다.
4.1.2 클 라 이언 트(호출 자)와 실제 대상 의 느슨 한 결합 을 실현 했다.
4.1.3 원 격 에이전트 로 인해 클 라 이언 트 가 원 격 기기 에 있 는 대상 을 방문 할 수 있 고 원 격 기 계 는 더욱 좋 은 성능 과 처리 속 도 를 가 질 수 있 으 며 클 라 이언 트 의 요청 에 신속하게 응답 하고 처리 할 수 있다.
4.1.4 가상 대 리 는 작은 대상 을 사용 하여 큰 대상 을 대표 하면 시스템 자원 의 소 모 를 줄 이 고 시스템 을 최적화 시 키 며 운행 속 도 를 높 일 수 있다.
4.1.5 안전 대 리 는 실제 대상 에 대한 사용 권한 을 제어 할 수 있다.
4.2 단점
4.2.1 대리 수 요 를 실현 하기 위해 방문 통제 층 을 추가 하기 위해 추가 작업 을 추가 했다.어떤 대 리 는 실현 하기 가 매우 복잡 하 다.
4.3 적용 필드
4.3.1 원 격 에이전트:서로 다른 주소 공간 에 있 는 대상 에 게 로 컬 에이 전 트 를 제공 합 니 다.
4.3.2 가상 에이전트:소모 가 많은 대상 을 만 들 려 면 소모 가 적은 대상 을 만 들 고 실제 대상 은 필요 할 때 만 진실 하 게 만 들 수 있다 는 것 을 나타 낸다.
4.3.3 안전 에이전트:실제 대상 에 대한 접근 권한 을 제어 하 는 데 사용 합 니 다.
4.3.4 스마트 가이드:실제 대상 을 호출 할 때 대리 가 추가 적 인 조작 을 제공한다.대상 이 조작 되 는 횟수 를 기록 하 는 등.
4.3.5 버퍼 에이전트:특정한 목표 작업 에 임시 저장 공간 을 제공 하여 더 많은 클 라 이언 트 가 이 결 과 를 공유 할 수 있 도록 합 니 다.
4.3.6 방화벽 대리:악성 사용자 가 접근 하지 않도록 보호 목표.
4.3.7 동기 화 에이전트:몇 명의 사용자 가 한 대상 을 동시에 사용 할 수 있 도록 충돌 하지 않 습 니 다.
5.예 를 들다
5.1 원 격 에이전트;.NET 의 WCF 원 격 에이전트
5.2 가상 에이전트;HTML 그림 불 러 오기
이상 이 바로 본문의 전체 내용 입 니 다.여러분 께 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.