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

网站如何做原创文章ps高手教学网站

网站如何做原创文章,ps高手教学网站,ios移动网站开发详解,电子商务系统设计报告在日常开发中,我们经常会遇到这样的场景:一个对象在不同时刻有不同的状态,不同状态下它的行为也会发生变化。此时,使用大量if...else或switch语句会让代码变得混乱而难以维护。为了更优雅地应对这种问题,状态模式(Stat…

        在日常开发中,我们经常会遇到这样的场景:一个对象在不同时刻有不同的状态,不同状态下它的行为也会发生变化。此时,使用大量if...else或switch语句会让代码变得混乱而难以维护。为了更优雅地应对这种问题,状态模式(State Pattern)应运而生。

1. 概念

        状态模式是行为型模式之一。它允许一个对象在其内部状态发生变化,改变它的行为,看起来就像修改了它的类一样。

简单来说:对象的行为取决于它的状态,并且可以在运行时根据状态改变行为。

状态模式主要包含以下角色:

环境类(Context): 也称为上下文,它定义了客户端需要的接口,内部维护一个当前状态,并负责具体状态的切换。

抽象状态类(State): 定义一个接口,用以封装环境对象中的特定状态所对应的行为,可以有一个或多个行为。

具体状态类(Concrete State): 实现抽象状态所对应的行为,并且在需要的情况下进行状态切换。

2. 代码实现

        这里我们以一个简单的订单状态来举例,我们一个订单可能拥有很多状态,比如代付款、待发货、已发货、已完成等状态,这里我们就来模拟一下一个订单完成的全状态。

        我们首先定义抽象状态,以及其相关实现:

public interface OrderState {void handle();
}
public class PendingPaymentState implements OrderState {public void handle() {System.out.println("订单待付款,提示用户付款...");}
}public class PaidState implements OrderState {public void handle() {System.out.println("订单已付款,准备发货...");}
}public class ShippedState implements OrderState {public void handle() {System.out.println("订单已发货,等待确认收货...");}
}public class CompletedState implements OrderState {public void handle() {System.out.println("订单已完成,谢谢惠顾!");}
}

其次我们定义一个环境类:

public class OrderContext {private OrderState state;public void setState(OrderState state) {this.state = state;}public void request() {if (state == null) {throw new IllegalStateException("订单状态未设置!");}state.handle();}
}

最后我们定义一个测试类:

public class Main {public static void main(String[] args) {OrderContext order = new OrderContext();order.setState(new PendingPaymentState());order.request(); // 输出:订单待付款,提示用户付款...order.setState(new PaidState());order.request(); // 输出:订单已付款,准备发货...order.setState(new ShippedState());order.request(); // 输出:订单已发货,等待确认收货...order.setState(new CompletedState());order.request(); // 输出:订单已完成,谢谢惠顾!}
}

        其实经验丰富的程序员可以联想到一个词:那就是状态机,我们也可以对上述的案例进行进一步的加强,比如可以让每一个状态都拥有切换状态的行为,这样环境类可以直接形成一个状态流程,可以通过调用该状态的方法就可以实现与其他状态的关联。

3. 应用场景

  • 流程框架
  • 状态机
  • ......

4. 总结

        使用状态模式可以让我们的业务逻辑更加的清晰,并且具有更高的扩展性,同时符合开闭原则,可以让我们业务代码避免过于臃肿。但是缺点在于会增加我们类的数量,我们业务每次增加一个状态就会添加一个新的状态实现类,但是其实比起if...else还是更加优雅的。

        其实状态模式用好了对于我们开发人员来说是跟提高我们代码的可读性,比如目前我所工作的项目中就有应用到,我也深刻体会到了状态模式扩展性的作用有多高。


文章转载自:

http://PQOQRN0x.jwfkk.cn
http://UpZ9HTMP.jwfkk.cn
http://80lV35Y8.jwfkk.cn
http://UIi8sQB5.jwfkk.cn
http://dxrRPfmY.jwfkk.cn
http://27zRcTYr.jwfkk.cn
http://wRqC8say.jwfkk.cn
http://jBgl1FoK.jwfkk.cn
http://BmLlWWxJ.jwfkk.cn
http://nQTFdxeq.jwfkk.cn
http://2bPq1aoN.jwfkk.cn
http://lr57ZMxO.jwfkk.cn
http://a7aK1s3M.jwfkk.cn
http://7VXh5mYq.jwfkk.cn
http://bXaW6Ya3.jwfkk.cn
http://Jr2XbXwx.jwfkk.cn
http://mcpWN9Uj.jwfkk.cn
http://fDNu7G8E.jwfkk.cn
http://8jp2AJQJ.jwfkk.cn
http://YhTGT9zf.jwfkk.cn
http://vbNrad8W.jwfkk.cn
http://FTyURm78.jwfkk.cn
http://lHLMWzD4.jwfkk.cn
http://Jte4UWCJ.jwfkk.cn
http://HJCh0OpQ.jwfkk.cn
http://S6PoKC4P.jwfkk.cn
http://8MIcJTm5.jwfkk.cn
http://2Z8ISU6F.jwfkk.cn
http://DtVGk3Z8.jwfkk.cn
http://L7Pcxrsn.jwfkk.cn
http://www.dtcms.com/wzjs/651929.html

相关文章:

  • 网站模版可以套用吗大气公司网站源码
  • 广州专业网站改版wordpress文章输入密码可见
  • 如何建立自己的网站c 网站做微信收款功能
  • 做二维码报名网站自由空间网站建设
  • 建设门户网站的公司软件工程师证书含金量
  • 淘宝做女鞋在哪个网站找货贵阳网站建设方案策划
  • 企业做网站属于广告宣传费吗行业门户网站程序
  • 国外木屋建设网站合肥学习做网站
  • 余姚建设网站国家高新技术企业管理办法
  • 网站优化做网站优化网站建设编辑叫什么岗位
  • 网站设计像素龙口建网站价格
  • 网站模板怎么使用天津住建网官网
  • 腾讯 网站建设idc网站源码下载
  • 上海手机网站建设电话咨询网站字体设计重要性
  • 济南知名网站建设平台学做网站需要多少钱
  • 网站挂广告电子商务网站建设详细策划书
  • 网站改版后 存在大量404页面建设安全监督网
  • 成都哪家网站建设好.php的网站是怎么做的
  • 公司部门网站设计模板下载网页qq登录电脑版
  • 河南省建设厅陈华平官方网站软件开发公司网站模板
  • 企腾做的网站怎么样如何设置网站会员
  • 网站建设和维护视频深圳网站设计张兵
  • 网站设计与建设的参考文献网站导航自适应
  • 百度推广怎么做网站的优化百度产品优化排名软件
  • 上海seo网站优化_搜索引擎排名_优化型企业网站建设_锦鱼网络黑龙江省建设协会网站
  • 什么是网站开发公司电话速成建站
  • 赣州企业网站建设公司备用网站域名
  • 建设租车网站wordpress 卡
  • 做二手房的网站技巧如何自己写一个网页
  • 深圳专业专业网站建设公司都安网站建设