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

建网站建设seo站长网

建网站建设,seo站长网,门户网站建设方案是什么意思,网站设计最新风格状态(State)模式属于行为型模式的一种。 状态模式允许对象在其内部状态改变时改变其行为,使其看上去就像改变了自身所属的类一样。 状态模式是为了把一大串if...else...的逻辑给分拆到不同的状态类中,使得将来增加状态比较容易。…

状态(State)模式属于行为型模式的一种。

状态模式允许对象在其内部状态改变时改变其行为,使其看上去就像改变了自身所属的类一样。

状态模式是为了把一大串if...else...的逻辑给分拆到不同的状态类中,使得将来增加状态比较容易。

状态模式的关键设计思想在于状态切换。简单的状态转换可以直接由调用方指定,复杂的状态转换可以在内部根据条件触发完成。

状态模式建议为对象的所有可能状态新建一个类,然后将所有状态的对应行为抽取到这些类中。

当对象的行为依赖于其状态,并且状态之间的转换复杂时;当代码中存在大量的条件语句,并且这些条件语句依赖于对象的状态时,我们都可以使用状态模式。

状态模式通常有以下组成部分:

  • 抽象状态接口:声明一个或多个方法,用于封装具体状态的行为。
  • 具体状态类:实现抽象状态接口,根据不同的状态实现具体的行为。
  • 环境类:包含一个状态对象的引用,并在状态改变时更新其行为。

我们实现一个简单的状态模式。

1、抽象状态类

// 抽象状态类
public interface State {void handle(Context context);
}

2、具体状态类

// 具体状态类A
public class ConcreteStateA implements State {@Overridepublic void handle(Context context) {System.out.println("Handling request in State A.");context.setState(new ConcreteStateB());}
}// 具体状态类B
public class ConcreteStateB implements State {@Overridepublic void handle(Context context) {System.out.println("Handling request in State B.");context.setState(new ConcreteStateA());}
}

3、环境类

// 环境类
public class Context {private State state;public Context(State state) {this.state = state;}public void setState(State state) {this.state = state;}public void request() {state.handle(this);}
}

4、客户端

// 客户端代码
public class StatePatternDemo {public static void main(String[] args) {Context context = new Context(new ConcreteStateA());context.request(); // 输出: Handling request in State A.context.request(); // 输出: Handling request in State B.}
}

状态模式的优缺点。 

优点:

  • 封装状态转换:将状态转换逻辑封装在状态对象内部,避免了复杂的条件判断语句。
  • 易于扩展:增加新的状态类不会影响现有代码,符合开闭原则。
  • 集中状态相关行为:将所有与特定状态相关的行为集中到一个类中,增强了代码的可维护性。

缺点:

  • 增加类和对象数量:每个状态都需要一个具体的状态类,可能导致类的数量增加。
  • 实现复杂:模式结构和实现相对复杂,可能增加系统的复杂度。

状态模式通过将状态和行为封装在独立的类中,使得对象的行为随着状态的变化而变化,增强了系统的灵活性和可维护性。

状态模式跟策略模式很相似,但有一个关键性的不同点——在状态模式中,特定状态是知道其他所有状态的存在的,且能触发从一个状态到另一个状态的转换;而策略则几乎是完全不知道其他策略的存在的。

他人犯错,常有己过。-- 烟沙九洲

http://www.dtcms.com/wzjs/119546.html

相关文章:

  • 专门做网站的科技公司下载百度软件
  • wordpress引流插件成都百度推广账户优化
  • 网站开发学费elo机制
  • 这几年做那些网站致富如何创建网址
  • 网站提交入口关键词优化seo外包
  • 怎么自己做网站排名哪里可以学seo课程
  • 网站建设与搜索引擎营销有什么关系单页网站怎么优化
  • 昆明做网站建设哪家好浏览器正能量网站免费
  • 做网站费用多少广州疫情已经达峰
  • 常州做网站的公司广西网络优化seo
  • 做网站为什么赚钱吗百度快照是怎么做上去的
  • wordpress 基础seo建站网页模板怎么用
  • 自己做的网站出现500错误怎么解决网站建设开发价格
  • 天津建设工程信息网怎么登录windows优化工具
  • 济南网站seo公司培训班管理系统 免费
  • 有没有可以做app的网站吗今日军事新闻最新消息新闻报道
  • 创建网站需要哪些步骤站点推广是什么意思
  • 做网站和app百度快照投诉中心
  • 网站alt标签外贸网站优化
  • 住房和城乡建设部网站村镇建设站长资源平台
  • 谈谈你对企业网站的页面设计百度网
  • 美女做基网站昆明新闻头条最新消息
  • 微信公众号怎么创建步骤网站关键词优化排名公司
  • 做网站work什百度app登录
  • 江苏专业做网站的公司哪家好网络广告营销成功案例
  • asp网站部署 iis7国外域名购买
  • 小说网站开发流程最佳的搜索引擎
  • 做网站的公司高创简单的个人网页制作html
  • 网站开发流程包括外贸网站seo教程
  • 常德网站开发公司百度seo点击工具