12.代理模式(Proxy Pattern)
发布日期:2021-05-10 05:01:40
浏览次数:24
分类:技术文章
本文共 1638 字,大约阅读时间需要 5 分钟。
代理模式
在生活中,我们租房或者买房的时候可以找中介,由中介替我们完成一些工作,再比如我们无法访问一些网站时,通过代理就可以访问。
在系统中,我们有时不想暴露系统内部的逻辑,就可以采用代理的方式,代理对象作为访问对象和目标对象之间的中介。
代理模式的主要优点有:
代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性其主要缺点是:
代理模式会造成系统设计中类的数量增加 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度;完整代码如下。意图:为其他对象提供一种代理以控制对这个对象的访问。
using System;namespace _12_ProxyPattern{ ////// 代理模式 /// class Program { static void Main(string[] args) { IImage image = new ProxyImage("pic.jpg"); //图像将从磁盘加载 image.Display(); Console.WriteLine(""); // 图像不需要从磁盘加载 image.Display(); Console.ReadKey(); } } public interface IImage { void Display(); } public class RealImage : IImage { public string _fileName; public RealImage(string fileName) { _fileName = fileName; LoadFromDisk(fileName); } public void Display() { Console.WriteLine("显示图片:" + _fileName); } public void LoadFromDisk(string fileName) { Console.WriteLine("加载图片:" + fileName); } } public class ProxyImage : IImage { private RealImage _realImage; private string _fileName; public ProxyImage(string fileName) { _fileName = fileName; } public void Display() { if (_realImage == null) { _realImage = new RealImage(_fileName); } _realImage.Display(); } }}
转载地址:https://blog.csdn.net/u012869793/article/details/115627175 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年09月21日 11时44分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
探偵ガリレオー転写る2
2019-06-07
快速排序算法C++实现[评注版]
2019-06-07
七尖记
2019-06-07
SAP(最短增广路算法) 最大流模板
2019-06-07
用极大化思想解决矩形问题学习笔记
2019-06-07
Django REST Framework 简单入门
2021-08-10
Hibernate中fetch和lazy介绍
2021-08-10
修改ip脚本
2021-08-10
解析xlsx与xls--使用2012poi.jar
2021-08-10
java5,java6新特性
2021-08-10
【LOJ】#2290. 「THUWC 2017」随机二分图
2021-08-10
SSL-ZYC 活动安排
2021-08-10
Git clone 报错 128
2021-08-10
在Python中执行普通除法
2021-08-10
编译原理(第三版) 语法分析器
2021-08-10
c# 动态绘制直线和曲线
2021-08-10
Spring理解?
2021-08-10
删除无限循环的文件夹-删除递归文件夹
2021-08-10
Test
2021-08-10
C# 整理
2021-08-10