
12.代理模式(Proxy Pattern)
发布日期:2021-05-10 05:01:40
浏览次数:8
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2023年12月07日 06时22分32秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java之RSA,RSA签名,AES
2019-03-28
开发环境搭建
2019-03-28
JavaScript高级程序设计第四版学习--第三章--第一部分
2019-03-28
JavaScript高级程序设计第四版学习--第三章--第二部分
2019-03-28
JavaScript高级程序设计第四版学习--第三章--第三部分
2019-03-28
JavaScript高级程序设计第四版学习--第四章
2019-03-28
JavaScript高级程序设计第四版学习--第五章
2019-03-28
JavaScript高级程序设计第四版学习--第六章
2019-03-28
JavaScript高级程序设计第四版学习--第七章
2019-03-28
JavaScript高级程序设计第四版学习--第八章
2019-03-28
JavaScript高级程序设计第四版学习--第九章
2019-03-28
title: JavaScript高级程序设计第四版学习--第十章
2019-03-28
JavaScript高级程序设计第四版学习--第十一章
2019-03-28
JavaScript高级程序设计第四版学习--第十二章
2019-03-28
JavaScript高级程序设计第四版学习--第十四章
2019-03-28
JavaScript高级程序设计第四版学习--第十五章
2019-03-28
avaScript高级程序设计第四版学习--第十六章
2019-03-28
JavaScript高级程序设计第四版学习--第十七章
2019-03-28
JavaScript高级程序设计第四版学习--第十九章
2019-03-28
JavaScript高级程序设计第四版学习--第二十章
2019-03-28