代理模式

xiaoxiao2021-02-28  119

      代理模式的适用场景

代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。

主要使用场景有:日志代理、权限代理、缓存代理、延迟代理

参与者:

Subject: 抽象角色。声明真实对象和代理对象的共同接口。        Proxy: 代理角色。代理对象与真实对象实现相同的接口,所以它能够在任何时刻都能够代理真实对象。代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作,相当于对真实对象进行封装。          RealSubject: 真实角色。它代表着真实对象,是我们最终要引用的对象

Subject: 抽象角色

public interface ISubject { bool Check_Ticket(); bool TadeTicket(); }    RealSubject: 真实角色

class RealSubject : ISubject { public bool Check_Ticket() { return true; } public bool TadeTicket() { return false; } } Proxy: 代理角色 class ProxySubject : ISubject {//代理模式就是把真实类包了一层,现在的写法就是日志代理,原有的方法只有特定的功能,在代理方法里面写上每个步骤都做了什么操作. private readonly RealSubject _realSubject = new RealSubject(); public bool Check_Ticket() { Console.WriteLine(@"先确认有没有票"); if (_realSubject.Check_Ticket()) { Console.WriteLine(@"确认有票."); return true; } else { Console.WriteLine(@"确认没有票."); return false; } } public bool TadeTicket() { Console.WriteLine(@"现在排队买票."); if (_realSubject.TadeTicket()) { Console.WriteLine(@"买到票了."); return true; } else { Console.WriteLine(@"没有买到票."); return false ; } } }结果:

转载请注明原文地址: https://www.6miu.com/read-20828.html

最新回复(0)