【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 天前
【数据结构与算法】动态规划
数据结构·c++·算法·leetcode·代理模式
山檐雾2 天前
OctreeNode
unity·c#·八叉树
妙蛙种子3112 天前
【Java设计模式 | 创建者模式】工厂方法模式
java·后端·设计模式·工厂方法模式
QfC92C02p2 天前
C# 中的 Span 和内存:.NET 中的高性能内存处理
java·c#·.net
wwdoffice01102 天前
薄 膜 干 涉
设计模式
Yuri X-20212 天前
VS2022实战测试题——2
程序人生·c#·个人开发·visual studio
公子小六2 天前
基于.NET的Windows窗体编程之WinForms布局简介
windows·microsoft·c#·.net
zaim12 天前
计算机的错误计算(二百二十六)
java·python·c#·c·错数·mpmath
William_cl2 天前
[特殊字符]C# ASP.NET 架构封神之路:分层 + 仓储 + EFCore,写出企业级可维护代码!
架构·c#·asp.net
tq6J5Yg142 天前
.NET 10 & C# 14 New Features 新增功能介绍-带修饰符的简单 lambda 参数
开发语言·c#·.net