博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
状态者模式 c#
阅读量:6284 次
发布时间:2019-06-22

本文共 1254 字,大约阅读时间需要 4 分钟。

  某一对象由于有不同的状态,而产生不同的行为。

 

using System;using System.Collections;using System.Collections.Generic;using System.Linq;namespace ConsoleApplication1{    class Program    {        public interface IDoorState        {            void Switch(Door door);        }        public class DoorOn : IDoorState        {            public void Switch(Door door)            {                Console.WriteLine("door off");                door.DoorState = new DoorOff();            }        }        public class DoorOff : IDoorState        {            public void Switch(Door door)            {                Console.WriteLine("door on");                door.DoorState = new DoorOn();            }        }        public class Door        {            public IDoorState DoorState            {                get;                set;            }            public Door()            {                DoorState = new DoorOff();            }            public void Switch()            {                DoorState.Switch(this);            }        }        static void Main(string[] args)        {            Door door = new Door();            door.Switch();            door.Switch();            door.Switch();        }    }}

 

转载于:https://www.cnblogs.com/zkzk945/p/5121135.html

你可能感兴趣的文章
R概率分布函数使用小结
查看>>
python学习记录(六)------python数据类型以及基本运算
查看>>
[javaSE] IO流(RandomAccessFile)
查看>>
nginx安装与搭建教程
查看>>
vnc viewer不能复制黏贴
查看>>
《敏捷软件开发》学习笔记 第17章 空对象模式
查看>>
数据库与JAVA 连接(JDBC)
查看>>
Android知识点:设置父控件事件拦截
查看>>
使用cmd导入导出oracle数据库dmp文件
查看>>
MVC @Html.TextBoxFor 格式化
查看>>
springboot之jpa多数据源
查看>>
ASP.NET MVC添加Action就找不到
查看>>
Windows 小技巧: 變更輸入法順序
查看>>
如何使得apache监听在特定的端口
查看>>
BZOJ-1207: [HNOI2004]打鼹鼠 (LIS类似DP)
查看>>
UNIX环境高级编程——线程属性
查看>>
VGA管脚定义
查看>>
Valgrind工具------可以分析内存泄漏
查看>>
侧边广告
查看>>
SilverLight在aspx页面调用自定义的控件
查看>>