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

建网站龙微信旅游网站建设

建网站龙,微信旅游网站建设,室内设计高端网站,深圳住房与建设局官方网站目录 (1)优点#xff1a; (2)缺点#xff1a; (3)使用场景#xff1a; (4)注意事项#xff1a; (5)应用实例#xff1a; 代码 在状态模式#xff08;State Pattern#xff09;中#xff0c;类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状…目录 (1)优点 (2)缺点 (3)使用场景 (4)注意事项 (5)应用实例 代码 在状态模式State Pattern中类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状态模式中我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的context对象。 【跟MM交往时一定要注意她的状态哦在不同的状态时她的行为会有不同比如你约她今天晚上去看电影对你没兴趣的MM就会说 “有事情啦”对你不讨厌但还没喜欢上的MM就会说 “好啊不过可以带上我同事么”已经喜欢上你的MM就会说“几点钟看完电影再去泡吧怎么样”当然你看电影过程中表现良好的话也可以把MM的状态从不讨厌不喜欢变成喜欢哦。 状态模式状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里每一个状态对象都属于一个抽象状态类的一个子类。 状态模式的意图是让一个对象在其内部状态改变的时候其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时系统便改变所选的子类。】 意图允许对象在内部状态发生改变时改变它的行为对象看起来好像修改了它的类。 主要解决对象的行为依赖于它的状态属性并且可以根据它的状态改变而改变它的相关行为。 何时使用代码中包含大量与对象状态有关的条件语句。 如何解决将各种具体的状态类抽象出来。 关键代码通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或者多个方法。而且状态模式的实现类的方法一般返回值或者是改变实例变量的值。也就是说状态模式一般和对象的状态有关。实现类的方法有不同的功能覆盖接口中的方法。状态模式和命令模式一样也可以用于消除 if...else 等条件选择语句。 (1)优点 1、封装了转换规则。 2、枚举可能的状态在枚举状态之前需要确定状态种类。 3、将所有与某个状态有关的行为放到一个类中并且可以方便地增加新的状态只需要改变对象状态即可改变对象的行为。 4、允许状态转换逻辑与状态对象合成一体而不是某一个巨大的条件语句块。 5、可以让多个环境对象共享一个状态对象从而减少系统中对象的个数。 (2)缺点 1、状态模式的使用必然会增加系统类和对象的个数。 2、状态模式的结构与实现都较为复杂如果使用不当将导致程序结构和代码的混乱。 3、状态模式对开闭原则的支持并不太好对于可以切换状态的状态模式增加新的状态类需要修改那些负责状态转换的源代码否则无法切换到新增状态而且修改某个状态类的行为也需修改对应类的源代码。 (3)使用场景 1、行为随状态改变而改变的场景。 2、条件、分支语句的代替者。 (4)注意事项 在行为受状态约束的时候使用状态模式而且状态不超过 5 个。 (5)应用实例 1、打篮球的时候运动员可以有正常状态、不正常状态和超常状态。 2、曾侯乙编钟中钟是抽象接口,钟A等是具体状态曾侯乙编钟是具体环境Context。 代码 public abstract class MMState {abstract void smile();abstract void cry();abstract void say(); } public class MMHappyState extends MMState {Overridevoid smile() {System.out.println(happy smile);}Overridevoid cry() {}Overridevoid say() {} }// public interface State {public void doAction(Context context); }public class StartState implements State {public void doAction(Context context) {System.out.println(Player is in start state);context.setState(this);}public String toString(){return Start State;} }public class StopState implements State {public void doAction(Context context) {System.out.println(Player is in stop state);context.setState(this);}public String toString(){return Stop State;} }public class Context {private State state;public Context(){state null;}public void setState(State state){this.state state;}public State getState(){return state;} }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());} }
http://www.dnsts.com.cn/news/237220.html

相关文章:

  • 第一ppt网站官网wordpress 加载时间
  • 网站建设了解三水住房和城乡建设局的网站
  • 学做缝纫的网站人工智能培训心得
  • 免费 空间 网站 国外线上宣传渠道
  • 政务网站建设的三个核心功能是什么阿里云购买网站登录
  • 网站建设公司网上海网页制作培训学校
  • 辽宁朝阳哪家做网站好全国职工素质建设工程专题网站
  • 中国建设监理网站网站内页权重
  • 网站关键字网站开发期间账务处理
  • 衣服网站建设规划书wordpress 4.9 中文版
  • 做网站的如何找业务xampp wordpress 安装
  • 网站建设预算申请建工网招聘
  • 途牛企业网站建设方案规划营销型的网站结构
  • 怎样制作自己的网站如何使用seo进行综合查询
  • 怎么建立公司网站平台做二手房网站有哪些
  • 网站建设 钱wordpress开发+文档下载
  • 网站开发视频会议插件做网站的项目策划书
  • 小学门户网站建设做网站必须有框架么
  • 网站查询备案信息成都软件开发工资一般多少钱
  • 宁波网站建设网站北京免费做网站
  • 福建城乡建设网站查询韩城网站建设
  • 做网站公司职员工资网站title优化
  • 网站建设和维护教程定制app开发
  • 企业宣传网站多大主机营销型网站建立
  • 西部数码网站管理助手3.0教程广告设计图片大全 模板
  • 怎么创建免费网站吗wordpress添加会员登录页面
  • 网站建设管理员郑州seo优化阿亮
  • 国内做的比较简洁的网站专业装修图片
  • 做么网站有黄电脑网页版微信
  • 北京企业建站程序sae wordpress 上传