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

青岛西海岸新区建设网站毕业设计做购物网站

青岛西海岸新区建设网站,毕业设计做购物网站,wordpress黑客主题,站长之家ppt模板引言 状态模式#xff08;State Pattern#xff09;是一种行为设计模式#xff0c;它允许对象在内部状态改变时改变其行为。状态模式通过将状态的相关行为分离到独立的状态类中#xff0c;使得状态转换更加明确和简洁。在金融业务中#xff0c;状态模式可以用于实现交易状…引言 状态模式State Pattern是一种行为设计模式它允许对象在内部状态改变时改变其行为。状态模式通过将状态的相关行为分离到独立的状态类中使得状态转换更加明确和简洁。在金融业务中状态模式可以用于实现交易状态管理、审批流程等功能。本文将介绍状态模式在金融业务中的使用并探讨其在Spring框架中的实现方式。 设计原理 状态模式主要涉及以下几个角色 上下文Context维护一个具体状态的实例该实例定义了当前对象的状态。状态State定义一个接口用于封装与上下文的一个特定状态相关的行为。具体状态Concrete State实现状态接口的具体状态类。 类图 下图展示了状态模式的类图 #mermaid-svg-2KvULh2rhXG0Fz5R {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-2KvULh2rhXG0Fz5R .error-icon{fill:#552222;}#mermaid-svg-2KvULh2rhXG0Fz5R .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-2KvULh2rhXG0Fz5R .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-2KvULh2rhXG0Fz5R .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-2KvULh2rhXG0Fz5R .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-2KvULh2rhXG0Fz5R .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-2KvULh2rhXG0Fz5R .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-2KvULh2rhXG0Fz5R .marker{fill:#333333;stroke:#333333;}#mermaid-svg-2KvULh2rhXG0Fz5R .marker.cross{stroke:#333333;}#mermaid-svg-2KvULh2rhXG0Fz5R svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-2KvULh2rhXG0Fz5R g.classGroup text{fill:#9370DB;fill:#131300;stroke:none;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:10px;}#mermaid-svg-2KvULh2rhXG0Fz5R g.classGroup text .title{font-weight:bolder;}#mermaid-svg-2KvULh2rhXG0Fz5R .nodeLabel,#mermaid-svg-2KvULh2rhXG0Fz5R .edgeLabel{color:#131300;}#mermaid-svg-2KvULh2rhXG0Fz5R .edgeLabel .label rect{fill:#ECECFF;}#mermaid-svg-2KvULh2rhXG0Fz5R .label text{fill:#131300;}#mermaid-svg-2KvULh2rhXG0Fz5R .edgeLabel .label span{background:#ECECFF;}#mermaid-svg-2KvULh2rhXG0Fz5R .classTitle{font-weight:bolder;}#mermaid-svg-2KvULh2rhXG0Fz5R .node rect,#mermaid-svg-2KvULh2rhXG0Fz5R .node circle,#mermaid-svg-2KvULh2rhXG0Fz5R .node ellipse,#mermaid-svg-2KvULh2rhXG0Fz5R .node polygon,#mermaid-svg-2KvULh2rhXG0Fz5R .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-2KvULh2rhXG0Fz5R .divider{stroke:#9370DB;stroke:1;}#mermaid-svg-2KvULh2rhXG0Fz5R g.clickable{cursor:pointer;}#mermaid-svg-2KvULh2rhXG0Fz5R g.classGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-2KvULh2rhXG0Fz5R g.classGroup line{stroke:#9370DB;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R .classLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-2KvULh2rhXG0Fz5R .classLabel .label{fill:#9370DB;font-size:10px;}#mermaid-svg-2KvULh2rhXG0Fz5R .relation{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-2KvULh2rhXG0Fz5R .dashed-line{stroke-dasharray:3;}#mermaid-svg-2KvULh2rhXG0Fz5R #compositionStart,#mermaid-svg-2KvULh2rhXG0Fz5R .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #compositionEnd,#mermaid-svg-2KvULh2rhXG0Fz5R .composition{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #dependencyStart,#mermaid-svg-2KvULh2rhXG0Fz5R .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #dependencyStart,#mermaid-svg-2KvULh2rhXG0Fz5R .dependency{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #extensionStart,#mermaid-svg-2KvULh2rhXG0Fz5R .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #extensionEnd,#mermaid-svg-2KvULh2rhXG0Fz5R .extension{fill:#333333!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #aggregationStart,#mermaid-svg-2KvULh2rhXG0Fz5R .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R #aggregationEnd,#mermaid-svg-2KvULh2rhXG0Fz5R .aggregation{fill:#ECECFF!important;stroke:#333333!important;stroke-width:1;}#mermaid-svg-2KvULh2rhXG0Fz5R .edgeTerminals{font-size:11px;}#mermaid-svg-2KvULh2rhXG0Fz5R :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} Context - state: State setState(state: State) request() State handle(context: Context) ConcreteStateA handle(context: Context) ConcreteStateB handle(context: Context) 状态模式在金融业务中的应用 1. 交易状态管理 在金融系统中交易通常会经历多个状态如创建、处理中、完成等。可以使用状态模式来管理这些状态及其对应的行为。 // 状态接口 public interface State {void handle(Context context); }// 具体状态类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());} }// 上下文类 public class Context {private State state;public Context() {state new ConcreteStateA();}public void setState(State state) {this.state state;}public void request() {state.handle(this);} }// 客户端代码 public class StatePatternDemo {public static void main(String[] args) {Context context new Context();context.request();context.request();context.request();context.request();} }状态模式在Spring框架中的应用 Spring State Machine Spring State Machine 是 Spring 提供的一个框架用于实现状态机特别适用于实现复杂的状态转换逻辑。 1. Spring State Machine 配置示例 Configuration EnableStateMachine public class StateMachineConfig extends StateMachineConfigurerAdapterString, String {Overridepublic void configure(StateMachineStateConfigurerString, String states) throws Exception {states.withStates().initial(STATE1).state(STATE2).state(STATE3);}Overridepublic void configure(StateMachineTransitionConfigurerString, String transitions) throws Exception {transitions.withExternal().source(STATE1).target(STATE2).event(EVENT1).and().withExternal().source(STATE2).target(STATE3).event(EVENT2);} }2. 使用状态机示例 public class StateMachineDemo {public static void main(String[] args) throws Exception {StateMachineString, String stateMachine new StateMachineConfig().buildStateMachine();stateMachine.start();stateMachine.sendEvent(EVENT1);System.out.println(Current state: stateMachine.getState().getId());stateMachine.sendEvent(EVENT2);System.out.println(Current state: stateMachine.getState().getId());} }总结 状态模式在金融业务中具有广泛的应用可以灵活地实现交易状态管理、审批流程等功能。在Spring框架中状态模式通过Spring State Machine等机制得到了广泛应用使得系统更具灵活性和可扩展性。 参考文献 Refactoring Guru - State PatternSpring State Machine Documentation 互动与反馈 如果你觉得这篇文章对你有帮助请点赞、收藏并关注我以便获得更多优质内容如有疑问或建议欢迎在评论区留言我会及时回复。感谢阅读 希望这对你有帮助如果你有其他设计模式需要了解请告诉我。
http://www.hkea.cn/news/14544244/

相关文章:

  • 网站建设 定制网站模板 婴儿
  • 成都建设银行合作装修网站浙江东南网架公司
  • 官网建站合作模版哔哩哔哩网页版搜索不了
  • 汝州市住房和城乡规划建设局网站网络服务费会计分录
  • 凡科做网站关键词最简单的出入库管理软件
  • 怎么免费做网站不要域名vue怎么做网站
  • 全国建设市场公共服务网站wordpress动静分离oss
  • 兼职建设网站公众号登录入口在哪
  • 如何给自己网站做网站优化安图县建设局网站
  • 视觉设计网站建设网站建设与维护薪资
  • 网站架构设计面试技巧这个是以前我自己做的一个网站
  • 利用技术搭建网站做网站代理做本地网站应该选什么内容
  • 汕头 网站设计书籍网站开发多少钱
  • 郑州网站开发汉狮营销策划案例
  • wordpress的cms主题给网站做seo诊断
  • 可以直接进入网站的正能量网站西安企业建站价格
  • 苏州高端网站设计安全网站建设与服务的关系
  • 成华区微信网站建设软件开发工作岗位
  • 手机网站制作建设wordpress 全文搜索
  • 大气婚庆网站源码python开源网站源码
  • 网站建设方任务 职责网站建设优化文档
  • 有没有专门做毕业设计的网站凡科做的网站能被收录吗
  • 做文案策划需要用到的网站强大的wordpress主题
  • wordpress编辑器未知错误5.2windows优化大师收费吗
  • 传媒网站给行业做宣传国家高新技术企业难吗
  • 做的很好的网站网站建设策划书结束语
  • 深圳自助建站系统wordpress用那个采集器
  • 学校网站建设经验介绍wordpress 读者墙不显示头像
  • 河南网站设计公司价格内江做网站哪里便宜
  • 自己怎么做新闻开头视频网站河南新蔡有做网站建设的吗