一、概述
在面向对象软件设计时,常常碰到某一个对象由于状态的不同而有不同的行为。如果用if else或是switch case等方法处理,对象操作及对象的状态就耦合在一起,碰到复杂的情况就会造成代码结构的混乱。在这种情况下,就可以使用状态模式来解决问题。
二、状态模式
状态模式允许一个对象在其内部状态改变时改变它的行为,使对象看起来似乎修改了它的类。
状态模式的结构图如下

Context代表需要改变状态的那个对象,它维护了一个State实例,该实例定义了对象的当前状态。
State定义了一个抽象类或是接口,用以封装与特定状态相关的行为。
ConcreteState实现了State定义的行为。
三、示例
本文实现一个电灯开关状态,以此为例介绍状态模式的应用。
首先定义状态接口

1     public interface LightState
2 {
3 void PressSwitch(Light light);
4 }

接着实现具体的状态

 1     public class LightOn : LightState
2 {
3 public void PressSwitch(Light light)
4 {
5 Console.WriteLine("Light Off");
6 light.State = new LightOff();
7 }
8 }
9
10 public class LightOff : LightState
11 {
12 public void PressSwitch(Light light)
13 {
14 Console.WriteLine("Light On");
15 light.State = new LightOn();
16 }
17 }

然后定义拥有该状态的对象即电灯

 1     public class Light
2 {
3 public LightState State;
4
5 public Light()
6 {
7 State = new LightOff();
8 }
9
10 public void PressSwtich()
11 {
12 State.PressSwitch(this);
13 }
14 }

最后看一下如何调用

1     static void Main(string[] args)
2 {
3 Light light = new Light();
4 light.PressSwtich();
5 light.PressSwtich();
6 light.PressSwtich();
7
8 Console.ReadLine();
9 }

输出结果如下
aaarticlea/png;base64,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" alt="" />

 

C#设计模式——状态模式(State Pattern)的更多相关文章

  1. 乐在其中设计模式(C#) - 状态模式(State Pattern)

    原文:乐在其中设计模式(C#) - 状态模式(State Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 状态模式(State Pattern) 作者:webabcd 介绍 允 ...

  2. 二十四种设计模式:状态模式(State Pattern)

    状态模式(State Pattern) 介绍允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它所属的类. 示例有一个Message实体类,对它的操作有Insert()和Get()方法, ...

  3. 状态模式-State Pattern(Java实现)

    状态模式-State Pattern 在状态模式(State Pattern)中,类的行为是基于它的状态改变的.当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. State接口 ...

  4. 设计模式(十二):通过ATM取款机来认识“状态模式”(State Pattern)

    说到状态模式,如果你看过之前发布的重构系列的文章中的<代码重构(六):代码重构完整案例>这篇博客的话,那么你应该对“状态模式”并不陌生,因为我们之前使用到了状态模式进行重构.上一篇博客我们 ...

  5. [设计模式] 20 状态模式 State Pattern

    在GOF的<设计模式:可复用面向对象软件的基础>一书中对状态模式是这样说的:允许一个对象在其内部状态改变时改变它的行为.对象看起来似乎修改了它的类.状态模式的重点在于状态转换,很多时候,对 ...

  6. 【UE4 设计模式】状态模式 State Pattern

    概述 描述 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类. 其别名为状态对象(Objects for States),状态模式是一种对象行为型模式. 有限状态机(FSMs) ...

  7. 十一个行为模式之状态模式(State Pattern)

    定义: 当一个对象有多个状态,并且在每个状态下有不同的行为,可以使用状态模式来在其内部改变状态时改变其行为,而客户端不会察觉状态的改变,仍使用同样的方法或接口与对象进行交互. 结构图: Context ...

  8. 状态模式(State Pattern)

    当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂 ...

  9. 大话设计模式--状态模式 State -- C++实现实例

    1.状态模式: 当一个对象的内在状态改变时,允许改变其行为,这个对象看起来就像是改变了其类. 状态模式解决的是当控制一个对象状态转换的条件表达式过于复杂, 把状态的判断逻辑转移到表示不同状态的一系列类 ...

随机推荐

  1. DATE_FORMAT函数用法

    一.在oracle中,当想把字符串为‘2011-09-20 08:30:45’的格式转化为日期格式,我们可以使用oracle提供的to_date函数. sql语句为: SELECT to_date(' ...

  2. asp Gridview绑定形式获取行号

    Gridview中使用<%# Container.DataItemIndex %>取得当前行的序号 而在Repeater控件中使用Container.ItemIndex取得当前行的序号 & ...

  3. xcode 编译器在各个arch下面默认宏

    $ clang -dM -E -arch armv7 -x c /dev/null #define OBJC_NEW_PROPERTIES 1 #define __APCS_32__ 1 #defin ...

  4. WPF操作ini 文件的读写示例

    /// <summary> /// IniFiles 的摘要说明. /// 示例文件路径:C:\file.ini /// [Server] //[*] 表示缓存区 /// name=loc ...

  5. HL AsySocket 服务开发框架 - 一般性测试1

    一 概述 Socket服务器性能要好就要经过无数次的测试,来保证,以下是记录一次的测试经过. 机器配置:Inter(R) Core(TM) i3-2310m CPU 2.10GHz RAM 6.00G ...

  6. appToken 来源

    .appToken的来源ActivityRecord, 用于在ActivityManagerService中记录Activity相关的信息(ActivityThread端 用的是ActivityCli ...

  7. 构建基于WinRT的WP8.1 App 02:数据绑定新特性

    基于WinRT的Windows Phone 8.1以及Windows 8.1中Xaml数据绑定增加了一些新特性. FallBackValue属性:FallBackValue在绑定的值属性值不存在时,可 ...

  8. url rewrite

    http://www.microsoft.com/taiwan/technet/iis/expand/URLRewrite.aspx http://www.iis.net/learn/extensio ...

  9. Debian 基本设置

    在此做一下记录,省得以后再老是去搜索了 我的debian版本v:8.1.0 我是在Hyper-V中装的,启动后一直ping不通网址,后来才知道Debian不能直接ping域名,只能ping IP... ...

  10. Apk去签名校验详解

    某些apk为了防止重打包,使用了签名校验.所以在破解的时候我们需要破解签名校验.在定位签名校验位置时常用的关键词有sign,signature,checkSign,signCheck,getPacka ...