简介
状态在生活和工作中无处不在,比如一个人有开心、伤心、工作中、睡眠中等不同的状态,一张订单有初始化、待审批、已审批等不同状态。
什么是状态模式
我们先来讲一下什么是状态模式。状态模式的定义是,当一个对象的内部状态改变时,其行为也随之改变,这个对象看起来像是改变了其类。
比如一个人,从心平气和的状态变到愤怒的状态下(状态的改变),简直判若两人(行为也随之改变)。
一个人状态的变化
下面我们就用代码来模拟一下一个人从心平气和的状态变到愤怒状态的不同行为变化的实现。
我们先看一下最最普通没有用设计模式的写法。
public class Person{
// 状态
private string _state = "Peaceful";
public string State
{
get => _state;
set => _state = value;
}
// 对于不同状态的反应
public void Reaction()
{
switch (this._state)
{
case "Peaceful":
Console.WriteLine("我现在很平静");
break;
case "Angry":
Console