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

建网站要学什么可以发布项目的平台

建网站要学什么,可以发布项目的平台,网站支持qq登录怎么做,阿里云服务器发布网站文章目录 引言状态模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用状态示例代码地址 引言 设想你正在使用一个在线视频播放器观看电影。随着你的互动#xff0c;播放器可能处于不同的状态#xff1a;播放、暂停、缓冲或结束。每个状态下#xff0c;播放… 文章目录 引言状态模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用状态示例代码地址 引言 设想你正在使用一个在线视频播放器观看电影。随着你的互动播放器可能处于不同的状态播放、暂停、缓冲或结束。每个状态下播放器的行为和可用选项都不同。这种能够根据当前状态调整行为的能力对于创建直观、响应灵敏的应用至关重要。在软件开发中状态模式正是用来优雅地处理这种依赖状态的行为变化的情况它帮助设计者清晰地分离和管理对象在不同状态下的行为。 状态模式简介 定义与用途 状态模式State Pattern是一种行为型设计模式它允许一个对象在其内部状态改变时改变它的行为。对象似乎修改了它的类。该模式封装了基于状态的行为并且通过将每个状态实现为一个派生类的方式将状态相关的行为局部化和集中化。 实现方式 实现状态模式通常涉及以下几个关键组件 上下文Context持有一个状态对象的引用并允许外部客户端触发状态变化。状态State定义一个接口以封装与上下文的一个特定状态相关的行为。具体状态Concrete States实现状态接口的类提供具体的行为实现。 使用场景 状态模式适用于以下场景 当一个对象的行为取决于它的状态并且它必须在运行时根据状态改变其行为时。当一个操作中含有庞大的多分支结构并且这些分支依赖于对象的状态时。 例如 文档审批流程文档在创建、审批、发布等不同状态之间转换每个状态下文档的行为如编辑、审批、发布不同。交通信号灯信号灯根据时间或条件变化其状态红灯、绿灯、黄灯每种状态下的行为比如停车、行驶也不同。游戏中的角色状态游戏角色可能有多种状态正常、加速、减速、无敌等每种状态下角色的行为和属性有所不同。 优势与劣势 优势 封装了基于状态的行为并且将状态相关的行为局部化。通过消除庞大的条件分支语句使得状态转换显式化。 劣势 如果状态多且复杂会导致有很多状态类增加系统复杂度。应用不当会导致状态和策略模式混淆。 在Spring框架中的应用 在Spring框架中状态模式可能不会像某些其他模式那样直接被提及但是其核心概念在某些Spring的功能和管理方式中得到了体现。以下是在Spring框架中体现状态模式概念的几个方面 1. Spring状态机Spring State Machine Spring状态机Spring State Machine是对状态模式概念的直接实现。它提供了一个强大的方式来管理状态转换以及状态下的行为。在复杂逻辑和工作流的情况下如订单管理、配置管理等Spring状态机可以帮助开发者以声明性的方式管理状态和事件。2. Spring Web Flow 在Spring Web Flow中状态模式的概念被用于管理Web应用中的页面流。页面流可以看作是一系列状态和发生在这些状态之间的事件。Spring Web Flow允许开发者定义页面流程的状态如视图状态、决策状态等并且基于发生的事件移动到不同的状态从而提供丰富的用户界面导航。3. Spring Security的认证状态 在Spring Security中用户的认证状态如已认证、未认证、认证失败等可以被看作是用户在安全上下文中的状态。Spring Security使用一系列的过滤器和认证管理器来处理这些状态变化并执行相应的安全逻辑。4. Session和会话管理 在Spring MVC中会话Session的状态管理也可以被看作是状态模式的一个例子。会话中的数据代表了用户的状态如用户认证、选择的语言、配置偏好等这些状态可能会随着用户的交互而改变。状态示例 步骤 1创建接口 public interface State {public void doAction(Context context); }State 接口定义了一个 doAction 方法所有的具体状态类将实现这个接口以提供相应的行为。 步骤 2创建实现相同接口的具体类 public class StartState implements State {public void doAction(Context context) {System.out.println(播放器处于开始状态);context.setState(this); }public String toString(){return 开始状态;} }StartState 是一个具体的状态类表示开始状态。当播放器处于这个状态时它将执行相应的操作并更新上下文状态。 public class StopState implements State{Overridepublic void doAction(Context context) {System.out.println(播放器处于停止状态);context.setState(this);}Overridepublic String toString(){return 停止状态;}}StopState 是另一个具体的状态类表示停止状态。在这个状态下它将执行停止状态下的操作并更新上下文状态。 步骤 3创建上下文类 public class Context {private State state;public Context(){state null;}public void setState(State state){this.state state; }public State getState(){return state;} }Context 类持有一个状态对象的引用并允许客户端通过 setState 方法改变其状态。它的行为随着状态的改变而改变。 步骤 4使用上下文来看到状态改变时的行为变化 public class StatePatternDemo {public static void main(String[] args) {Context context new Context();StartState startState new StartState();startState.doAction(context);System.out.println(当前状态: context.getState().toString());StopState stopState new StopState();stopState.doAction(context);System.out.println(当前状态: context.getState().toString());} } 在这个演示类中我们创建了一个上下文对象并改变其状态。首先我们将上下文设置为开始状态并执行相关操作然后我们将上下文设置为停止状态并执行相关操作。在每个状态改变后我们都打印出当前的状态来看到行为的变化。 这个示例演示了状态模式如何使对象的行为随其状态的改变而改变。通过将每个状态的行为封装在单独的类中我们可以很容易地增加新的状态和行为同时保持不同状态的行为分离和独立。 代码地址 23种设计模式相关代码后续会逐步提交到github上方便学习欢迎指点 代码地址 https://github.com/RuofeiSun/lf-23Pattern
http://www.zqtcl.cn/news/589575/

相关文章:

  • 企业微信网站怎么建设山东有哪些网络公司
  • 做任务领佣金的网站源码页面设计参评
  • 淘宝联盟个人网站怎么做企业年度报告公示系统
  • 长沙企业网页设计哪家专业网站优化seo
  • 网站设计 西安漂亮企业网站源码
  • 云南省科技网站网页设计师有前途吗
  • 漳州网站开发找出博大科技慈溪市建设局网站表格下载
  • 网站到期怎么续费公司网站asp源码
  • 多个域名 一个网站域名解析官网
  • 中国建设银行企业网站旅游网页代码模板
  • 湛江免费企业建站wordpress archives
  • 建个企业网站多少钱图书管理系统网站开发教程
  • 淘宝客网站建设详细教程wordpress转dz
  • 银川网站推广i深建官方网站
  • 有什么较好的网站开发框架娱乐网站模板
  • 宿迁网站建设托管wordpress 萝莉
  • 定制网站开发冬天里的白玫瑰制作复杂的企业网站首页
  • 网站开发及设计演讲海报免费做网站app下载
  • 做动态图片的网站吗自考网站建设与实践
  • 建外贸网站需要多少钱胖咯科技 网站建设
  • wordpress注明网站做微网站的第三方登录
  • 学网站建设维护网站公司建设公司
  • 做小型网站的公司wordpress 主题上传
  • 网站之家查询重庆市建设项目环境申报表网站
  • 网站建设基础及流程网站运营一个月多少钱
  • 南沙免费网站建设wordpress邮箱注册
  • 网站关键字优化软件网络营销推广方式包括?
  • 专做装修的网站pc端好玩的大型网游
  • 洞泾网站建设网易考拉的网站建设
  • 网站建设的市场调研杭州网络公司项目合作