当前位置: 首页 > news >正文

搜狐快站廊坊网站群建设

搜狐快站,廊坊网站群建设,搞个app软件需要多少钱,a标签下载wordpress目录 1、状态模式#xff08;State Pattern#xff09;含义 2、状态模式的UML图学习 3、状态模式的应用场景 4、状态模式的优缺点 #xff08;1#xff09;优点 #xff08;2#xff09;缺点 5、C实现状态模式的实例 1、状态模式#xff08;State Pattern#x…目录 1、状态模式State Pattern含义 2、状态模式的UML图学习 3、状态模式的应用场景 4、状态模式的优缺点 1优点 2缺点 5、C实现状态模式的实例 1、状态模式State Pattern含义 状态模式State当一个对象的内在状态改变时允许改变其行为这个对象看起来像是改变了其类。【DP】 ”状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中可以把复杂的判断逻辑简化。当然如果这个状态判断很简单那就没必要用‘状态模式’了 。“ 2、状态模式的UML图学习 状态模式主要涉及以下几个角色 1环境Context环境类是拥有状态的对象它维护一个对抽象状态类的引用通过该引用来切换当前状态。环境类在其操作中会委托给当前状态对象进行处理。 2抽象状态State抽象状态类定义了一个接口用于封装环境对象的特定状态所对应的行为。 3具体状态Concrete State具体状态类实现了抽象状态类定义的接口并根据具体情况进行相应的处理和状态转换。 通过这些角色的协作状态模式可以实现对象的状态与行为之间的解耦使得状态的变化不会影响到客户端代码同时也方便了状态的扩展和维护。 3、状态模式的应用场景 1一个对象的行为取决于它的状态并且需要在运行时根据状态改变行为时可以考虑使用状态模式。 2当一个对象的行为在不同的状态下有不同的实现且这些状态可以动态切换时可以考虑使用状态模式。 3当需要消除大量的条件判断语句并将其转换为状态类之间的关联时可以考虑使用状态模式。 4、状态模式的优缺点 1优点 1将状态转换逻辑封装在具体的状态类中使得状态变化对于客户端来说是透明的客户端无需关心状态的切换细节。 2将大量的条件判断语句转换为状态类之间的关联使得代码更加清晰、可读性更高。 3符合开闭原则当需要增加新的状态时只需要添加新的状态类而不需要修改现有的代码。 简而言之是将与特定状态相关的行为局部化并且将不同状态的行为分割开来【DP】 2缺点 1状态模式会引入多个状态类增加了系统的复杂性。  2如果状态转换比较复杂可能会导致状态类之间的相互调用增多影响系统的性能。 5、C实现状态模式的实例 #include iostream// 状态接口 class State { public:virtual void handle() 0; };// 具体状态类A class ConcreteStateA : public State { public:void handle() override {std::cout Handle by ConcreteStateA std::endl;} };// 具体状态类B class ConcreteStateB : public State { public:void handle() override {std::cout Handle by ConcreteStateB std::endl;} };// 上下文类 class Context { private:State* state;public:Context(State* initialState) : state(initialState) {}void setState(State* newState) {state newState;}void request() {state-handle();} };int main() {// 创建状态对象State* stateA new ConcreteStateA();State* stateB new ConcreteStateB();// 创建上下文对象并设置初始状态Context context(stateA);// 请求处理context.request(); // 输出: Handle by ConcreteStateA// 切换状态context.setState(stateB);context.request(); // 输出: Handle by ConcreteStateB// 释放资源delete stateA;delete stateB;return 0; }上述示例中定义了一个状态接口State具体状态类ConcreteStateA和ConcreteStateB实现了该接口。上下文类Context持有一个状态对象并根据当前状态调用相应的行为。通过切换状态可以改变上下文对象的行为。
http://www.dnsts.com.cn/news/85109.html

相关文章:

  • 云南网站设计联系方式wordpress怎么发布文章
  • 网站搭建网站管理wordpress htnl短代码
  • 网站建设流程怎么样cad做兼职区哪个网站
  • 装饰装修网站大全净化科技网站建设
  • oracle自带网站开发设计师网站欣赏
  • 购物网站的设计与实现论文百度广告投放技巧
  • 黄页名录网站开发多平台网页制作
  • 济南网站推广建设有限公司2015微信网站设计
  • 网站建设文章简易网站模板
  • 网站链接用处建筑企业资质
  • 南京网站推广互联网10大厂
  • 全返网站建设网站策划书范文模板
  • 50强网站建设公司想要做个公司网站
  • 多个微信管理系统台州网站排名优化价格
  • 深圳网站设计公司哪家工艺好个人建个网站需要多少钱
  • 建筑网站图片网站制作专业
  • 北京网站建设价家具设计师要学哪些软件
  • 网站团队的建设wordpress展览会
  • 湖北企业响应式网站建设价位wordpress写文章页面无法显示
  • 宝塔做网站可以用什么端口网站域名费用交给谁
  • 西青网站文化建设wordpress写文章更新失败
  • 静态网站可以申请域名吗重庆推广网站排名公司
  • 为什么招聘网站不能用自己做的简历godday网站建设
  • 网站页面布局设计思路基于.net的个人网站开发实录
  • wordpress线上聊天插件seo是如何做优化的
  • 网站开发保密合同wordpress 自动 采集
  • 建设网站困难的解决办法广东东莞大益队
  • 网站功能模块表格wordpress 二手市场
  • 企业手机端网站源码下载全新装修效果图大全
  • 专业电商网站设计网站大全下载