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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:13.责任链模式(Chain of Responsibility Pattern)
下一篇:11.享元模式(Flyweight Pattern)

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年09月21日 11时44分17秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章