本文阐述了状态模式在JS设计模式中的概念和用法。分享给大家参考,如下:
1.概观
当一个对象的内部状态改变时,它被允许改变它的行为,而这个对象似乎改变了它的类。
2.问题解决了
主要解决控制对象状态转移的条件表达式过于复杂的问题。将状态的判断逻辑转移到一系列不同的类中,可以简化复杂的逻辑判断。
函数上下文(_ state){ this . state=_ state;this . request=function(){ this . state . handle(this);} }函数ConTestTa(){ this。handle=function(context){ console . log(' A ');context . state=new ConTextStateB();} }函数ConTextStateB(){ this。handle=function(context){ console . log(' B ');context . state=new ConTextStatea();} }//将Context的初始状态设置为具体状态avarcontext=new context(新的具体状态a());//在更改状态上下文的同时继续发出请求。requestscontext . request();状态模式的使用场景也很清晰,有以下两点:
对象的行为取决于它的状态,它必须在运行时根据它的状态改变它的行为。
一个操作中有许多分支语句,这些分支语句取决于对象的状态。状态通常是一个或多个枚举常数的表示。
应用场景:
有几种呼叫状态:获取电话号码、拨号、呼叫和结束。这些状态的顺序是次等的,所以我们可以根据这些状态实现状态模式;
获取电话号码
正在拨号
召集
通话结束
继续调用此方法context . request();判断它属于哪个州;
关于JavaScript的更多信息,请参考本网站的主题:《javascript面向对象入门教程》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、0103010。
希望本文对JavaScript编程有所帮助。