java怎样切换账户登录_基于java实现自由切换登录状态功能

本文通过一个实际的登录与未登录状态切换的例子,介绍了如何在Java中使用状态模式来优雅地处理这两种状态下的操作。通过创建抽象状态角色UserState、登录状态LoginState和未登录状态UnLoginState,以及上下文角色AppContext,实现状态的切换和相应操作的执行。状态模式在大型系统中可以提高代码的可维护性和可扩展性。
摘要由CSDN通过智能技术生成

日常开发中,登录和未登录两种状态分别有不同的操作,比如登录后才能评论、收藏、支付购买和编辑资料等操作。我们网购时看到心仪的商品,如果处于登录状态,可以加购物车或直接购买,否则会跳转到登录页面,登录后再继续执行先前的动作。这里涉及的状态有两种,即登录和未登录。行为有两种,即加购物车和直接购买。

如果使用 if-else 语句实现,代码如下。

public void addShopping() {

if(未登录){

System.out.println("去登录");

return;

}

System.out.println("加入购物车!");

}

public void buy(){

if(未登录){

System.out.println("去登录");

return;

}

System.out.println("直接购买!");

}

以上代码是比较常用的,可以看出每个操作都需要判断用户是否处于登录状态。简单的情况下这样做没什么问题,也省去了状态类,但是如果这是一个庞大的系统。那就有必要斟酌是否使用状态模式了。

下面使用状态模式来实现这个逻辑,代码如下。

首先创建抽象状态角色 UserState 类,用来定义不同状态下需要执行的方法。

public abstract class UserState {

public AppContext getContext() { <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值