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

网站收费标准长宁区小学网站建设

网站收费标准,长宁区小学网站建设,Windows下配置WordPress,合肥网站关键词优化状态模式:类的行为基于它的状态改变 属于行为型模式,创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。在代码中包含大量与对象状态有关的条件语句可以通过此模式将各种具体的状态类抽象出来 介绍 意图:允许对象在…

状态模式:类的行为基于它的状态改变 属于行为型模式,创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。在代码中包含大量与对象状态有关的条件语句可以通过此模式将各种具体的状态类抽象出来

介绍
  • 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类。
  • 主要解决问题:对象的行为依赖于它的状态(属性),并且可以根据它的状态改变而改变它的相关行为。
  • 关键代码:通常命令模式的接口中只有一个方法。而状态模式的接口中有一个或者多个方法。而且,状态模式的实现类的方法,一般返回值,或者是改变实例变量的值。也就是说,状态模式一般和对象的状态有关。实现类的方法有不同的功能,覆盖接口中的方法。状态模式和命令模式一样,也可以用于消除 if...else 等条件选择语句。
  • 优点:1、封装了转换规则。 2、枚举可能的状态,在枚举状态之前需要确定状态种类。 3、将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。 4、允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。5、可以让多个环境对象共享一个状态对象,从而减少系统中对象的个数。
  • 缺点:1、状态模式的使用必然会增加系统类和对象的个数。 2、状态模式的结构与实现都较为复杂,如果使用不当将导致程序结构和代码的混乱。 3、状态模式对"开闭原则"的支持并不太好,对于可以切换状态的状态模式,增加新的状态类需要修改那些负责状态转换的源代码,否则无法切换到新增状态,而且修改某个状态类的行为也需修改对应类的源代码。
示例

以图形状态 三角形、圆形、矩形为例:

  1. 创建一个接口
    public interface State { void doAction(Shape shape);String toStr();
    }
  2. 创建 Shape类。
    public class Shape {private State state;public State getState() {return state;}public void setState(State state) {this.state = state;}
    }
  3. 创建实现接口的实体类
    三角形状态
    public class TriangleState implements State{@Overridepublic void doAction(Shape shape) {shape.setState(this);}@Overridepublic String toStr(){return "三角形";}
    }
    圆形状态
    public class CircularState implements State{@Overridepublic void doAction(Shape shape) {shape.setState(this);}@Overridepublic String toStr(){return "圆形";}
    }
    矩形状态
    public class RectangleState implements State{@Overridepublic void doAction(Shape shape) {shape.setState(this);}@Overridepublic String toStr(){return "矩形";}
    }
  4. 使用
        public static void main(String[] args) {Shape shape = new Shape();TriangleState triangleState = new TriangleState();triangleState.doAction(shape);String state =  shape.getState().toStr();//三角形CircularState circularState = new CircularState();circularState.doAction(shape);state =  shape.getState().toStr();//圆形RectangleState rectangleState = new RectangleState();rectangleState.doAction(shape);state =  shape.getState().toStr();//矩形}

http://www.yayakq.cn/news/583382/

相关文章:

  • 网站建设单元格边距wordpress 首页添加链接
  • 呼和浩特商城网站建设黄山北京网站建设
  • 北京公司网站建设推荐Wordpress做什么网站赚钱
  • 想在网上做外卖 上什么网站好重庆站外推广网站
  • 郑州专业网站建设微官网招聘系统
  • 一般做个网站需要多少钱成都最新防疫政策
  • 单页面网站设计手机百度2020最新版
  • 青白江网站建设唐山建设造价信息网的网站
  • 微信公众号广告投放价格表seo教程网站
  • 做文字头像的网站站长工具怎么关闭
  • 引蜘蛛网站深圳电子厂排名前十
  • h5网站开发语言选择百度排名软件
  • 免费论坛建站牛牛网站建设
  • 青海西宁做网站多少钱苏州网站设计网站
  • 网站建设的目入图片新网站如何做网站优化
  • 厦门好的网站设计营销型网站四大元素
  • 如何做行业网站安徽seo网络推广
  • 泰安网站建设渠道饭店网站建设策划方案
  • 又拍网站怎么做的提高网站可用性的策略有哪些
  • 网站设计步骤包括哪些阿里云加WordPress建站
  • 网络站点推广的方法有哪些wordpress系列文章
  • 保定软件开发网站制作网站群建设存在的问题
  • 比较好的企业建站平台从化商城网站建设
  • 安徽智能网站建设推荐常州企业网站建设公司
  • 南京市雨花台区建设局网站vs2013如何做网站
  • 昆明市城市建设档案馆网站3d网站设计
  • 安阳做网站推广平面设计提升培训机构
  • 你做的网站可视区域多少网页设计公司企业组织结构图
  • 网站素材大全安徽省住房城乡建设厅网站电工
  • 建设网站报告书网站建设到底属于什么行业