State模式学习
enum DocumentState
{
readonly,Editable
}
class Document
{
DocumentState state;
public void Handle()
{
if(state=DocumentState.readonly)
{
}
else
{
}
}
}
-------------------------------------
abstract clasass StatedDocument ---表达状态及依赖的行为
{
public abstract void Handle1()
public abstract void Handle2()
public abstract void Handle3()
public abstract StatedDocument Next
{ get;set;}
}
class Document------Request
{
StatedDocument statedDocument;
public void SetStatedDocument(StatedDocument statedDocument)
{
this.statedDocument=statedDocument;
}
public void Handle1()
{
statedDocument.Handle1();
}
public void Handle2()
{
statedDocument.Handle2();
}
public void Handle3()
{
statedDocument.Handle3();
}
}
-----------具体的状态类
public class ReadOnlyDocumentState:StatedDocument
{
public abstract void Handle1()--------edit button
{
system.println(" system is readonly");
SetStatedDocument(new EditableDocumentState)
}
}
posted on 2009-11-01 21:53 Love Fendi 阅读(191) 评论(0) 编辑 收藏 举报