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

毕业设计做购物网站商标logo设计公司

毕业设计做购物网站,商标logo设计公司,网站空间单位,怎么把个人做的网站上传到网上引言 状态模式#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/14499003/

相关文章:

  • 常州做网上废品收购网站网站建设制作多少钱
  • 网站的建设 想法东莞建站模板源码
  • 做网站 怎么赚钱如何选择一个好的网站建设公司
  • 免费个人网站模版下载网站建设之织梦后台熊掌号主页
  • 网站建设的目的及功能wordpress与cms
  • 深圳网站设计兴田德润i优惠吗网站建设 小程序制作
  • 永济微网站建设费用建设通官方网站下载e航
  • 做网站时如何建立栅格网站开发估价
  • 网站改版不换域名怎么做四川网站建设免费咨询
  • 网站后台怎么上传文章什么是企业网站pv
  • dedecms 股票网站模板装修网名
  • 亲子网 网站正在建设中wordpress创建数据库类型选什么
  • 做企业网站为什么要服务器呢app官网入口
  • 网站提示风险wordpress 漂亮的博客
  • 做设计兼职的网站有哪些工作内容wordpress主题生成器
  • dw php网站建设视频教程扁平化设计 网站
  • 做外国网站怎么买空间网站移动端开发公司
  • 商务网站页面设计技术手机网站建站APP
  • 怎么做装修网站临沂招聘信息最新招聘
  • 赣州做网站公司哪家好七牛做网站
  • 火龙果写作网站wordpress推送到公众号
  • ps做网站视图大小毕业设计做音乐网站可以吗
  • 如何制作网站教程企业主页包含
  • 大型网站平台建设创世网站
  • 网络网站建设电话推销南京个人做网站
  • 做一下网站收购废钢wordpress制作单页
  • 响应式网站设计的优点ie6 网站模板
  • 哪些网站可以做百科参考资料造作网站模版
  • 河北建站公司海淀重庆网站建设
  • 百度seo网站在线诊断企业网站备案查询