千家信息网

如何分析J2EE设计模式中的State模式

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,这期内容当中小编将会给大家带来有关如何分析J2EE设计模式中的State模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。设计模式,这个概念现在是满天飞,大家手里面
千家信息网最后更新 2024年09月22日如何分析J2EE设计模式中的State模式

这期内容当中小编将会给大家带来有关如何分析J2EE设计模式中的State模式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

设计模式,这个概念现在是满天飞,大家手里面估计都有,Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, in the book "Design Patterns - Element of Re-Useable Object-Oriented Software",这本书。根据其中的说法,有三种,创建型模式、结构型模式和行为型模式。一共包括23个模式,在这里不一一列举。实际应用中,我们不可能在短时间内消化吸收掉,因为模式本身就是约定俗成的东西,依靠大家以往的项目经验总结出来的习惯用法。

我们现在就看看一个例子。以行为型模式State为例。(模式的实现例子网络上有很多。Java的实现也很多,比如,Together ControlCenter里面就内置了这种基于GP的编程模板,详细内容大家用用就知道了。)

大家知道,State的用意在于,允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了他的类。

首先看接口类,State.java

public interface State {   public void handle();   }

以定义接口以封装与Conext(代码稍候陈述!)的一个特定状态相关的行为。

然后看,接口的实现类。***个,ConcreteState1.java

public class ConcreteState1 implements State {   public void handle() {   System.out.println("ConcreteState1.handle() executing");   }   }

第二个,ConcreteState2.java

public class ConcreteState2 implements State {   public void handle() {   System.out.println("ConcreteState2.handle() executing");   }   }

这两个类实现了State接口。

然后再看,Context.java是如何将上述三个.java文件联系起来。

public class Context {   public static final int STATE_ONE = 0;   public static final int STATE_TWO = 1;

//大家注意,这句话很关键,该模式做手脚的地方!

private State currentState = new ConcreteState1();   public void request() {   currentState.handle();   }   public void changeState(int state) {   switch (state) {   case STATE_ONE:   currentState = new ConcreteState1();//关键点   break;   case STATE_TWO:   currentState = new ConcreteState2();//关键点   break;   }   }   }

这样,写好4个.java文件后,其实您已经实现了State设计模式,很有趣,对吧?就是这样简单。

再看看如何使用该设计模式了。写一个Client.java看看。

public class Client {   public static void main(String[] args) {   // 构造Context   Context ctx = new Context();   // 唤起Context.request()   ctx.request();   // 改变ctx的状态?为什么改变了呢?大家想想看。   ctx.changeState(Context.STATE_TWO);   // 再次唤起Context.request(),结果大不一样。   ctx.request();   }   }

上述就是小编为大家分享的如何分析J2EE设计模式中的State模式了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

模式 设计模式 设计 分析 接口 行为 关键 内容 就是 状态 例子 关键点 对象 文件 有趣 约定俗成 一一列举 大不一样 三个 东西 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 万方数据库查询征稿 延庆区综合软件开发质量保障 江西标准软件开发费用 计算机网络技术好不好好就业吗 网络安全和信息化是互相 炫控网络技术 软件开发项目周记 宁乡县 网络技术 软件开发工程师是挂靠 计算机网络技术项目教程 语言产业数据库 华为云软件开发平台部署 数据库根据时间进行筛选数据 视频点播需要推流服务器吗 国内外发生的网络安全的例子 新东方互联网科技有限公司 lol可以跨服务器送英雄吗 金山区数据链网络技术优势 《高级数据库技术》 蓝牙网络技术是什么 腾讯云服务器设置管理员 三丰云虚拟服务器有哪些 湖南一路畅行互联网科技 数据库体建设 视频点播需要推流服务器吗 中行软件开发中心合肥社招 交换网络技术涉及哪些内容 扫黄扫非 护苗 网络安全 棋牌软件开发源码 信旭明途网络技术有限公司
0