【C#设计模式(13)——代理模式(Proxy Pattern)】

前言

代理模式通过引入一个中间代理对象去控制对原始对象的访问,并在访问过程中进行控制或增强。同时保持客户与原始对象之间的解耦。

代码

csharp 复制代码
 //主题
 public abstract class Subject
 {
     public abstract void Request();
 }

 //实际主题
 public class RealSubject : Subject
 {
     public override void Request()
     {
         Console.WriteLine("real request address: 10.110.119.120");
     }
 }
 // 代理主题
 public class Proxy : Subject
 {
     private RealSubject _subject;
     public Proxy()
     {
         _subject = new RealSubject();
     }

     public override void Request()
     {
         Console.WriteLine("init request config....");

         _subject.Request();

         Console.WriteLine("use proxy realm name request :https://www.baidu.com");
     }
 }

/*
 * 结构型模式:Structural Pattern
 * 代理模式:Proxy Pattern
 */
internal class Program
{
    static void Main(string[] args)
    {
        Proxy proxy = new Proxy();
        proxy.Request();
        Console.ReadLine();
    }
}

运行结果

相关推荐
沛沛老爹1 小时前
Web开发者进阶AI:Agent技能设计模式之迭代分析与上下文聚合实战
前端·人工智能·设计模式
码农学院2 小时前
使用腾讯翻译文本
服务器·数据库·c#
Geoking.2 小时前
【设计模式】装饰者模式详解
设计模式·装饰器模式
十幺卜入2 小时前
Unity3d C# 基于安卓真机调试日志抓取拓展包(Android Logcat)
android·c#·unity 安卓调试·unity 安卓模拟·unity排查问题
lingxiao168882 小时前
WebApi详解+Unity注入--上篇:基于Framework的WebApi
c#·wpf·web
ttod_qzstudio3 小时前
从Unity的C#到Babylon.js的typescript:“函数重载“变成“类型魔法“
typescript·c#·重载·babylon.js
vx-bot5556664 小时前
企业微信接口在自动化工作流中的关键角色与设计模式
设计模式·自动化·企业微信
eggcode4 小时前
C#读写Bson格式的文件
c#·json·bson
Yu_Lijing4 小时前
基于C++的《Head First设计模式》笔记——工厂模式
c++·笔记·设计模式