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

flash网站模版制作的网站

flash网站模版,制作的网站,second是什么意思,信息服务类网站怎么做允许一个对象内部状态改变时改变它的行为#xff0c;对象看起来似乎修改了它的类 问题#xff1a; 状态模式和有限状态机紧密相关。其主要思想是程序在任意时刻仅可处于几种有限的状态中。 在任何一个特定状态中#xff0c; 程序的行为都不相同#xff0c; 且可瞬间从一个…  允许一个对象内部状态改变时改变它的行为对象看起来似乎修改了它的类 问题 状态模式和有限状态机紧密相关。其主要思想是程序在任意时刻仅可处于几种有限的状态中。 在任何一个特定状态中 程序的行为都不相同 且可瞬间从一个状态切换到另一个状态。 不过 根据当前状态 程序可能会切换到另外一种状态 也可能会保持当前状态不变。 这些数量有限且预先定义的状态切换规则被称为转移。而状态判断通常是由比较多的条件判断语句实现而过多的状态判断会导致我们项目维护变得更加困难而且还很臃肿也可以依据当前对象状态选择响应的行为。 解决方案 状态模式建议为对象的所有可能状态新建一个类 然后将所有状态的对应行为抽取到这些类中。 原始对象被称为上下文 context 它并不会自行实现所有行为 而是会保存一个指向表示当前状态的状态对象的引用 且将所有与状态相关的工作委派给该对象。 文档将工作委派给一个状态对象文档将工作委派给一个状态对象。如需将上下文转换为另外一种状态 则需将当前活动的状态对象替换为另外一个代表新状态的对象。 采用这种方式是有前提的 所有状态类都必须遵循同样的接口 而且上下文必须仅通过接口与这些对象进行交互。 这个结构可能看上去与策略模式相似 但有一个关键性的不同——在状态模式中 特定状态知道其他所有状态的存在 且能触发从一个状态到另一个状态的转换 策略则几乎完全不知道其他策略的存在。 状态模式结构和其角色 在 Java 语言中 状态模式通常被用于将基于 switch语句的大型状态机转换为对象。 这里是核心 Java 程序库中一些状态模式的示例 javax.faces.lifecycle.LifeCycle#execute() 由Faces­Servlet控制 行为依赖于当前 JSF 生命周期的阶段 状态 识别方法 状态模式可通过受外部控制且能根据对象状态改变行为的方法来识别。 上代码 public abstract class State {Player player;State(Player player) {this.player player;}public abstract String onLock();public abstract String onPlay();public abstract String onNext();public abstract String onPrevious(); } public class LockedState extends State {LockedState(Player player) {super(player);player.setPlaying(false);}Overridepublic String onLock() {if (player.isPlaying()) {player.changeState(new ReadyState(player));return Stop playing;} else {return Locked...;}}Overridepublic String onPlay() {player.changeState(new ReadyState(player));return Ready;}Overridepublic String onNext() {return Locked...;}Overridepublic String onPrevious() {return Locked...;} } public class ReadyState extends State {public ReadyState(Player player) {super(player);}Overridepublic String onLock() {player.changeState(new LockedState(player));return Locked...;}Overridepublic String onPlay() {String action player.startPlayback();player.changeState(new PlayingState(player));return action;}Overridepublic String onNext() {return Locked...;}Overridepublic String onPrevious() {return Locked...;} } public class Player {private State state;private boolean playing false;private ListString playlist new ArrayList();private int currentTrack 0;public Player() {this.state new ReadyState(this);setPlaying(true);for (int i 1; i 12; i) {playlist.add(Track i);}}public void changeState(State state) {this.state state;}public State getState() {return state;}public void setPlaying(boolean playing) {this.playing playing;}public boolean isPlaying() {return playing;}public String startPlayback() {return Playing playlist.get(currentTrack);}public String nextTrack() {currentTrack;if (currentTrack playlist.size() - 1) {currentTrack 0;}return Playing playlist.get(currentTrack);}public String previousTrack() {currentTrack--;if (currentTrack 0) {currentTrack playlist.size() - 1;}return Playing playlist.get(currentTrack);}public void setCurrentTrackAfterStop() {this.currentTrack 0;} } public class Client{private Player player;public Client(Player player){this.player player;}public void test(){System.out.println( player.getState().onPlay());System.out.println( player.getState().onLock());System.out.println( player.getState().onNext());System.out.println( player.getState().onPrevious());} } 测试 public class Demo {public static void main(String[] args) {Player player new Player();Client client new Client(player);client.test();} } Paused... Stop playing Locked... Locked... 状态模式适合应用场景 如果对象需要根据自身当前状态进行不同行为 同时状态的数量非常多且与状态相关的代码会频繁变更的话 可使用状态模式。 模式建议你将所有特定于状态的代码抽取到一组独立的类中。 这样一来 你可以在独立于其他状态的情况下添加新状态或修改已有状态 从而减少维护成本。 如果某个类需要根据成员变量的当前值改变自身行为 从而需要使用大量的条件语句时 可使用该模式。 状态模式会将这些条件语句的分支抽取到相应状态类的方法中。 同时 你还可以清除主要类中与特定状态相关的临时成员变量和帮手方法代码。 当相似状态和基于条件的状态机转换中存在许多重复代码时 可使用状态模式。 状态模式让你能够生成状态类层次结构 通过将公用代码抽取到抽象基类中来减少重复。  如果状态机只有很少的几个状态 或者很少发生改变则无需使用此模型。
http://www.hkea.cn/news/14533761/

相关文章:

  • 经营阅读网站需要怎么做网站建设代码好难啊
  • 做网站教材成都网站设计开发公司
  • 嘉兴外贸网站建设精美网页模板
  • 中国最好的建站公司wordpress加个微信登录
  • 营销型网站建设必须的步骤包括大连app开发制作
  • 交易平台网站建设策划书CQ网站建设
  • 无锡市城乡建设局网站wordpress中文杂志主题
  • 淘宝提货网站怎么做的网站生成app要多少钱
  • 网站首页三张海报做多大印发网站建设方案
  • 北京做家政网站有哪些平台今天安阳发生的重大新闻
  • 杭州小程序推广门户网站怎么做seo
  • 如何模仿网站模板wordpress狮子歌歌
  • dedecms搭建网站做营销型网站 公司
  • 成都医院网站建设制作个人网页的过程
  • 外贸网站价格表大学生怎么做网站支付模块
  • 网站开发语言优缺点中国建设银行官网站纪念币河南
  • 网站建设小程序南宁网站怎么做移动图片不显示
  • 法律咨询东莞网站建设网站维护服务费
  • 推广免费网站网站建设需要哪些人员
  • 给国外做网站无需下载国外黄冈网站推广
  • 程序员做外包网站专业外贸网站制作
  • 响应式网站开发实例制作小程序的软件免费
  • 济宁城乡建设局网站网页设计与制作课程设计报告小结
  • 天津做网站制作公司开发公司房价制定
  • 做微商有哪些网站可以免费宣传专业做公司宣传网站的
  • 网站需要怎么做的wordpress分享可见
  • 襄樊网站建设哪家好宁波网站建设设计服务公司
  • 企业网站的网页设计服装网站建设图
  • 江苏SEO网站建设网站界面需求
  • a5创业网站建设在哪里做马可波罗网站