原文:乐在其中设计模式(C#) - 状态模式(State Pattern)
[索引页][源码下载]
乐在其中设计模式(C#) - 状态模式(State Pattern)
作者:webabcd
介绍
允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
示例
有一个Message实体类,对它的操作有Insert()和Get()方法,持久化数据在SqlServer数据库中或Xml文件里。在对象内部可以根据用户的不同选择不同的数据持久化方案。

MessageModel
AbstractMessageState
XmlMessage
SqlMessage
Message
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.State;


public partial class State : System.Web.UI.Page



{

protected void Page_Load(object sender, EventArgs e)


{

Message m = new Message("admin");

Response.Write(m.Insert(new MessageModel("插入", DateTime.Now)));

Response.Write("<br />");

Response.Write(m.Get()[].PublishTime.ToString());

Response.Write("<br />");


m = new Message("user");

Response.Write(m.Insert(new MessageModel("插入", DateTime.Now)));

Response.Write("<br />");

Response.Write(m.Get()[].PublishTime.ToString());

Response.Write("<br />");

}

}
运行结果
True
SQL方式获取Message 2007-3-6 22:58:17
True
XML方式获取Message 2007-3-6 22:58:17
参考
http://www.dofactory.com/Patterns/PatternState.aspx
OK
[源码下载]