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

济源建设网站的公司海口创建公司

济源建设网站的公司,海口创建公司,建个普通网站,优秀网站建设空间小谈设计模式#xff08;17#xff09;—状态模式 专栏介绍专栏地址专栏介绍 状态模式关键角色上下文(Context)抽象状态(State)具体状态(Concrete State) 核心思想Java程序实现首先#xff0c;我们定义一个抽象状态类 State#xff0c;其中包含一个处理请求的方法 handleRe… 小谈设计模式17—状态模式 专栏介绍专栏地址专栏介绍 状态模式关键角色上下文(Context)抽象状态(State)具体状态(Concrete State) 核心思想Java程序实现首先我们定义一个抽象状态类 State其中包含一个处理请求的方法 handleRequest()然后我们创建两个具体状态类 ConcreteStateA 和 ConcreteStateB它们分别实现了抽象状态类 State接下来我们创建一个上下文类 Context其中包含一个指向当前状态的引用并提供了一个方法 setState() 用于切换状态和一个方法 request() 用于处理请求最后我们可以在客户端代码中使用上下文类来测试状态模式的效果输出结果分析 优缺点分析优点123缺点12 总结 专栏介绍 专栏地址 link 专栏介绍 主要对目前市面上常见的23种设计模式进行逐一分析和总结希望有兴趣的小伙伴们可以看一下会持续更新的。希望各位可以监督我我们一起学习进步加油各位。 状态模式 状态模式是一种行为型设计模式它允许一个对象在内部状态发生变化时改变其行为。状态模式将对象的行为封装在不同的状态类中通过改变对象的状态来改变其行为。 关键角色 上下文(Context) 上下文是一个包含状态的对象它定义了客户端与状态对象的交互接口。上下文中维护了一个指向当前状态的引用并且在运行时可以切换到不同的状态。上下文将客户端请求委派给当前状态对象处理。 抽象状态(State) 抽象状态是一个接口或抽象类它定义了状态对象的通用行为。具体状态类需要实现这个接口或继承这个抽象类并且根据具体的状态来实现相应的行为。 具体状态(Concrete State) 具体状态是实现抽象状态的具体类。每个具体状态类都代表了上下文在特定状态下的行为。具体状态类负责处理上下文的请求并在需要时切换到其他状态。 核心思想 将状态的判断和状态的行为分离使得状态的变化不影响行为的变化。通过将状态的行为封装在具体状态类中可以方便地添加新的状态或修改现有状态的行为同时也避免了状态判断的复杂性。 Java程序实现 首先我们定义一个抽象状态类 State其中包含一个处理请求的方法 handleRequest() public abstract class State {public abstract void handleRequest(); }然后我们创建两个具体状态类 ConcreteStateA 和 ConcreteStateB它们分别实现了抽象状态类 State public class ConcreteStateA extends State {Overridepublic void handleRequest() {System.out.println(处理请求当前状态为A);} }public class ConcreteStateB extends State {Overridepublic void handleRequest() {System.out.println(处理请求当前状态为B);} }接下来我们创建一个上下文类 Context其中包含一个指向当前状态的引用并提供了一个方法 setState() 用于切换状态和一个方法 request() 用于处理请求 public class Context {private State currentState;public Context() {// 初始化为初始状态currentState new ConcreteStateA();}public void setState(State state) {currentState state;}public void request() {currentState.handleRequest();} }最后我们可以在客户端代码中使用上下文类来测试状态模式的效果 public class Client {public static void main(String[] args) {Context context new Context();// 处理请求当前状态为Acontext.request();// 切换状态为Bcontext.setState(new ConcreteStateB());// 处理请求当前状态为Bcontext.request();} }输出结果 处理请求当前状态为A 处理请求当前状态为B分析 在上述示例中我们通过状态模式实现了一个简单的上下文对象 Context它可以根据不同的状态来处理请求。通过切换状态上下文对象可以改变其行为。这样我们可以方便地添加新的状态类或修改现有状态的行为而不需要修改客户端代码。 优缺点分析 优点 1 通过将状态的行为封装在具体状态类中可以使得状态的变化对客户端透明客户端只需要与上下文进行交互不需要关心具体的状态。 2 增加新的状态类相对容易符合开闭原则不需要修改现有的代码。 3 将状态的行为集中到具体状态类中使得代码更加清晰易于维护和扩展。 缺点 1 当状态的行为比较少或简单时使用状态模式可能会导致类的数量增加增加了代码的复杂性。 2 如果状态之间存在相互转换的复杂逻辑可能需要引入其他模式来处理状态之间的转换。 总结 状态模式是一种通过将状态的行为封装在具体状态类中使得状态的变化不影响行为的设计模式。它可以使代码更加清晰、易于维护和扩展适用于状态变化较多且状态之间的行为差异较大的场景。
http://www.huolong8.cn/news/187366/

相关文章:

  • 网站建设新的技术电商网站建设精准扶贫的目的
  • 廊坊商昊网站建设深圳建设网站公司哪儿济南兴田德润有活动吗
  • 贵州省房屋和城市建设厅官方网站建设部职称证书查询官方网站
  • 威海网站建设哪家好中国营销型网站
  • 做技术网站赚钱市场营销培训课程
  • 国外网站404错误页哪个网站做任务给东西
  • 做cms网站步骤制作网站电话
  • 哈尔滨住房和城乡建设局网站自治区建设厅官方网站
  • wordpress 下载站插件搜索引擎营销广告
  • 深圳市住房和建设局门户网站做网站运营需要培训吗
  • 昌江县住房和城乡建设局网站河南中原建设网站微信群
  • 绵阳市中医医院网站建设天津商务网站建设
  • 做ppt的模板网站有哪些asp.net 网站安装
  • 泉州建设工程质量网站太钢建设公司官网
  • 快速搭建一个网站wordpress配置qq邮件
  • 专门做婚庆的网站有哪些有网络打不开网页怎么回事
  • 中国廉洁建设网是什么正规网站吗京东云 安装wordpress
  • 曰本孕妇做爰网站e4a怎么做网站app
  • 我想做个网站 详解怎么做中小企业网站建设公司首选
  • 网站建设的步骤教程下载专题网站建设解决方案
  • 当涂 微网站开发公司网站空间 更换
  • 网站设计风北京工业产品设计公司
  • 大学一学一做视频网站wordpress调用分类图片大小
  • 知名建站企业哪家好国外网站建设模板
  • 自己做的网站如何引流医院建设网站
  • 用源码做自己的网站网页ui设计师培训
  • 我想卖自己做的鞋子 上哪个网站好福州网站建设印秀
  • 如何制作网站导航栏新手编程软件哪个好用
  • 手机自己做网站吗网站开发方案案例
  • 网站建设费用设计著名的响应式网站有哪些