二十四种设计模式:代理模式(Proxy Pattern)
生活随笔
收集整理的這篇文章主要介紹了
二十四种设计模式:代理模式(Proxy Pattern)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
代理模式(Proxy Pattern)
?
介紹
為其他對(duì)象提供一個(gè)代理以控制對(duì)這個(gè)對(duì)象的訪問。
示例
有一個(gè)Message實(shí)體類,某對(duì)象對(duì)它的操作有Insert()和Get()方法,用一個(gè)代理來(lái)控制對(duì)這個(gè)對(duì)象的訪問。
MessageModel
using System; using System.Collections.Generic; using System.Text;namespace Pattern.Proxy {/// <summary>/// Message實(shí)體類/// </summary>public class MessageModel{/// <summary>/// 構(gòu)造函數(shù)/// </summary>/// <param name="msg">Message內(nèi)容</param>/// <param name="pt">Message發(fā)布時(shí)間</param>public MessageModel(string msg, DateTime pt){this._message = msg;this._publishTime = pt;}private string _message;/// <summary>/// Message內(nèi)容/// </summary>public string Message{get { return _message; }set { _message = value; }}private DateTime _publishTime;/// <summary>/// Message發(fā)布時(shí)間/// </summary>public DateTime PublishTime{get { return _publishTime; }set { _publishTime = value; }}} }IMessage
using System; using System.Collections.Generic; using System.Text;namespace Pattern.Proxy {/// <summary>/// 對(duì)Message操作的接口/// </summary>public interface IMessage{/// <summary>/// 獲取Message/// </summary>/// <returns></returns>List<MessageModel> Get();/// <summary>/// 插入Message/// </summary>/// <param name="mm">Message實(shí)體對(duì)象</param>/// <returns></returns>bool Insert(MessageModel mm);} }SqlMessage
using System; using System.Collections.Generic; using System.Text;namespace Pattern.Proxy {/// <summary>/// Sql方式操作Message/// </summary>public class SqlMessage : IMessage{/// <summary>/// 獲取Message/// </summary>/// <returns></returns>public List<MessageModel> Get(){List<MessageModel> l = new List<MessageModel>();l.Add(new MessageModel("SQL方式獲取Message", DateTime.Now));return l;}/// <summary>/// 插入Message/// </summary>/// <param name="mm">Message實(shí)體對(duì)象</param>/// <returns></returns>public bool Insert(MessageModel mm){// 代碼略return true;}} }MessageProxy
using System; using System.Collections.Generic; using System.Text;namespace Pattern.Proxy {/// <summary>/// 代理類/// </summary>public class MessageProxy : IMessage{SqlMessage _sqlMessage;/// <summary>/// 構(gòu)造函數(shù)/// </summary>public MessageProxy(){_sqlMessage = new SqlMessage();}/// <summary>/// 獲取Message/// </summary>/// <returns></returns>public List<MessageModel> Get(){return _sqlMessage.Get();}/// <summary>/// 插入Message/// </summary>/// <param name="mm">Message實(shí)體對(duì)象</param>/// <returns></returns>public bool Insert(MessageModel mm){return _sqlMessage.Insert(mm);}} }Client
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;using Pattern.Proxy;public partial class Proxy : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e){MessageProxy m = new MessageProxy();Response.Write(m.Insert(new MessageModel("插入", DateTime.Now)));Response.Write("<br />");Response.Write(m.Get()[0].Message + " " + m.Get()[0].PublishTime.ToString());} } 運(yùn)行結(jié)果
True
SQL方式獲取Message 2007-4-1 16:31:24
轉(zhuǎn)載于:https://www.cnblogs.com/taotaodetuer/p/6182367.html
總結(jié)
以上是生活随笔為你收集整理的二十四种设计模式:代理模式(Proxy Pattern)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于爱情的唯美签名253个
- 下一篇: MariaDB 双主复制的配置