有关状态机等模型,请参考此博客:https://blog.csdn.net/gao7009/article/details/80221163
模型的本质意义是为了模式化逻辑,使得复杂问题简单化,同时尽可能的实现代码复用以及尽可能高的可扩展行。根据“敏捷开发原则”因此如果你用上这些模型之后反而逻辑不畅请换个模型,其次不要跟一个模型较真,模型具有局限性,当遇到有局限性部分的模型,当场隔离出来换个模型并将他们组合起来发挥作用。
其次,代码的本质就是条件和动作。所以无论什么模型都可以做成并行的一连串的if语句,甚至都不用进行if嵌套。我们只要将一个动作发生的全部条件(包括先后条件等)统统写入if语句中,然后在里面写上要执行的动作即可。这样的话我们要写“组合”数量的if语句(不考虑先后条件),或者“排列”数量的if语句(考虑先后条件)。显然这种写法可扩展性几乎为0,冗杂度极高。执行效率极低。但是好处就是只要明确了总状态,然后按照排列组合罗列if语句就好了,不用考虑细节问题(毕竟对于模型,一旦遇到一些特殊情况,就需要修改模型的局部,打破模型的规律性,导致出现BUG),对于逻辑能力不好的人是个好方法。毕竟计算机底层也是这样执行的,cpu的智商普遍不是很高(QWQ)。