极简主义的订单系统阶段练习回答
来源:13-8 【思考】阶段练习

慕少6126089
2021-08-28
1. 什么是有限状态机?
有限状态机是一种用来进行对象行为建模的工具,主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。
状态机可归纳为4个要素,即现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。
2. 如何使用Stateless实现状态流转?
public class Order
{
public Order()
{
StateMachineInit();
}
[Key]
public Guid Id { get; set; }
public string UserId { get; set; }
public ApplicationUser User { get; set; }
public ICollection<LineItem> OrderItems { get; set; }
public OrderStateEnum State { get; set; }
public DateTime CreateDateUTC { get; set; }
public string TransactionMetadata { get; set; }
StateMachine<OrderStateEnum, OrderStateTriggerEnum> _machine;
public void PaymentProcessing()
{
_machine.Fire(OrderStateTriggerEnum.PlaceOrder);
}
public void PaymentApprove()
{
_machine.Fire(OrderStateTriggerEnum.Approve);
}
public void PaymentReject()
{
_machine.Fire(OrderStateTriggerEnum.Reject);
}
private void StateMachineInit()
{
_machine = new StateMachine<OrderStateEnum, OrderStateTriggerEnum>(() => State, s => State = s);
_machine.Configure(OrderStateEnum.Pending)
.Permit(OrderStateTriggerEnum.PlaceOrder, OrderStateEnum.Processing)
.Permit(OrderStateTriggerEnum.Cancel, OrderStateEnum.Cancelled);
_machine.Configure(OrderStateEnum.Processing)
.Permit(OrderStateTriggerEnum.Approve, OrderStateEnum.Completed)
.Permit(OrderStateTriggerEnum.Reject, OrderStateEnum.Declined);
_machine.Configure(OrderStateEnum.Declined)
.Permit(OrderStateTriggerEnum.PlaceOrder, OrderStateEnum.Processing);
_machine.Configure(OrderStateEnum.Completed)
.Permit(OrderStateTriggerEnum.Return, OrderStateEnum.Refund);
}
}
3. 第三方支付的基本流程是什么?
引导客户携带着回调url到第三方支付平台支付,支付成功后,第三方支付平台将用户引导回商家。
写回答
1回答
-
阿莱克斯刘
2021-09-04
答案正确
00
相似问题