設計模式結構型之代理模式
阿新 • • 發佈:2020-08-26
什麼是代理,在現實生活中,我們去買火車票,可以到各個地方的火車票代售點去購買,而不用到火車站去,代售點本身只需要引用火車站的業務就擁有了售票功能。
在軟體的設計中,我們可以也可以通過一個代理類來實現真實業務方法。程式碼實現如下:
/// <summary> /// 真實業務類 /// </summary> public class RealSubject { public void DoSomething() { Console.WriteLine("執行火車站賣票業務"); } }/// <summary> /// 代理類 /// </summary> public class ProxySubject { private readonly RealSubject _realSubject = new RealSubject(); public void DoSomething() { _realSubject.DoSomething(); } }
class Program { static voidMain(string[] args) { { //正常呼叫 RealSubject subject = new RealSubject(); subject.DoSomething(); } { //通過代理呼叫 ProxySubject subject = new ProxySubject(); subject.DoSomething(); } } }
使用代理模式,我們可以在代理類中實現一些我們平時需要加入的非業務的需求,比如異常處理,加入日起,快取,許可權代理,延遲代理等,而不需要修改我們的真實業務類。這樣我們真實業務類可以更專注做好與系統業務需求相關的事情,保證真實業務類的簡潔。