使用场景:状态和行为比较复杂时,为了避免大量if else,可以使用状态模式。
包含要素:
Context:环境类,包含一些内部状态
State:抽象状态类
ConcreteState:具体状态类,用来处理来自Context的请求
示例demo:购买商品后,订单状态有待发货,待收货,待评价,关闭,用户可以退货,收货,评价。但是特定的行为要在特定状态下发生。如评价只能在待评价状态下才能操作。
使用场景:状态和行为比较复杂时,为了避免大量if else,可以使用状态模式。
包含要素:
Context:环境类,包含一些内部状态
State:抽象状态类
ConcreteState:具体状态类,用来处理来自Context的请求
示例demo:购买商品后,订单状态有待发货,待收货,待评价,关闭,用户可以退货,收货,评价。但是特定的行为要在特定状态下发生。如评价只能在待评价状态下才能操作。