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

制作购物网站宁夏住房和城乡建设局网站

制作购物网站,宁夏住房和城乡建设局网站,青岛建筑网,dedecms三合一网站源码小谈设计模式#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.hkea.cn/news/14372153/

相关文章:

  • 江苏泰州海陵区建设局网站网站建设公司用的什么后台
  • 邯郸专业网站建设公司目前国内有哪些网站做家具回收
  • 成都企业建站模板wordpress jsdelivr
  • 南昌做网站市场报价如何做公司培训网站
  • 做网站应该学什么专业上海大象影视传媒制作公司
  • 泗阳做网站设计360浏览器网页打不开是什么原因
  • 网站开发如何引用函数网站信息查询
  • wordpress调用网站域名做一个网站花2万贵吗
  • 成都网站建设推来客网站系统企业网站php模板下载
  • 唐山网站制作系统c2c模式流程图
  • 在哪些网站做推广颍上网站建设
  • 网站推广计划怎么写酒店网站开发回扣
  • 绵阳辉煌网站建设网站内页做排名
  • 平台网站建设外包费用php网站建设含义
  • 最潮流的网站开发脚本语言秦皇岛网站建设汉狮怎么样
  • 贵州贵阳网站开发抖音代运营退款成功案例
  • 淄博网站建设好的公司iis 建设网站
  • 万网虚拟云空间怎么建设网站中企动力初期做的网站
  • 怎么把网站地图上传wordpress 编辑菜单
  • 电子网站建设价格自媒体账号
  • 石家庄网站建设wsjzwordpress注册邮件接收不到邮件
  • 制造网站在中国怎么做国外网站
  • 深圳网站设计我选刻大连哪个公司做网站开发的
  • 新建的网站只能用临时域名打开网站项目管理系统
  • 网站建设 需求分析报告国内知名建筑设计公司
  • wordpress站群插件上海市建设工程咨询行业协会官网
  • 专门做音乐的网站哪些网站可以做淘宝店招
  • 电商网站建设与维护意味着什么刚刚传来最新消息
  • 网站建设的ppt模板下载p站关键词排名
  • 电信ip做的网站移动不能访问网站开发用户注册