[拾遗]状态模式

嘻嘻,同样,不是送给高手,是我自己回忆一下,给自己以及也忘记的人看的。

using System;
using System.Collections.Generic;
using System.Text;

namespace 状态模式1
{
    
class Program
    {
        
static void Main(string[] args)
        {
            状态接口 状态1 
= new 生病();
            状态接口 状态2 
= new 健康();

            人 小王 
= new 人();

            小王.状态属性 
= 状态1;
            小王.干什么();

            小王.状态属性 
= 状态2;
            小王.干什么();

            Console.Read();
        }
    }

    
public interface 状态接口
    {
        
/// <summary>
        
/// 在每种状态下该干什么
        
/// </summary>
        void 该干什么();
    }

    
/// <summary>
    
/// 状态的Context
    
/// </summary>
    public class 人
    {
        
private 状态接口 状态;

        
public 人()
        { }

        
public 状态接口 状态属性
        {
            
get
            {
                
return 状态;
            }
            
set
            {
                状态 
= value;
            }
        }

        
//public 人(状态接口 状态)
        
//{
        
//    this.状态 = 状态;
        
//}

        
public void 干什么()
        {
            状态.该干什么();
        }
    }

    
public class 生病 : 状态接口
    {
        
public void 该干什么()
        {
            Console.WriteLine(
"打针吃药休息");
        }
    }

    
public class 健康 : 状态接口
    {
        
public void 该干什么()
        {
            Console.WriteLine(
"上班");
        }
    }
}

posted on 2006-06-07 12:54  萝卜青菜  阅读(256)  评论(0编辑  收藏  举报

导航