使用集合做一个用户登录注册的基本实现

使用集合做一个用户登录注册的基本实现

设计思想

按面向过程思想划分

1.拿到用户的基本信息,譬如用户名以及密码
2.校验用户名密码是否正确
3.返回数据(true,false)

按面向对象思想划分

1.有哪些类
    用户 :    由于用户成员变量较多,又可以拆分为基本用户类以及用户操作类
        用户类
        用户操作类
    测试类
2.类有哪些东西
    基本用户类:
        成员变量: 
            用户名
            密码
            ...
        构造方法: ...
        成员方法: getXxx()/setXxx()
    用户操作类:
        成员方法:
            检验用户信息
    测试类: main方法
3.类与类之间的关系
    用户操作类: 进行数据与接受的用户对象的校验
    测试类: 创建用户与用户操作类并使用它们的方法

分包

A: 按功能划分
B: 按模块划分
C: 混合使用;如果模块较少,先按模块划分后按功能划分
    这里使用按功能划分
    用户基本描述包: cn.pojo
    用户操作接口: cn.dao
        为了方便作IO、GUI、数据库等实现的扩展  创建了一个操作接口
    用户操作类: cn.dao.impl
    用户测试类: cn.test

代码实现

接口

用户操作接口的具体方法如下:
1
2
3
public abstract boolean isLogin(String username,String password); 

void register(User user);
{% codeblock 实现方法 lang:java %} public abstract boolean isLogin(String username,String password); {% endcodeblock %}

实现类

1.用户集合
要确保每一个用户操作对象获得的都是同一个集合
1
private static List<User> userList = new ArrayList<>();
2.登录功能
1
2
3
4
5
6
7
public boolean isLogin(String username, String password) {
int index = isEmptyUsername(username);
if (index > -1 && userList.get(index).getPassword().equals(password)){
return true;
}
return false;
}
3.注册功能
1
2
3
4
5
6
7
8
public void register(User user) {
if (isEmptyUsername(user.getUsername()) == -1) {
userList.add(user);
System.out.println("注册成功");
} else {
System.out.println("注册失败");
}
}
4.判断用户名并返回索引
1
2
3
4
5
6
7
private int isEmptyUsername(String username) {
for (int i = 0; i < userList.size(); i++) {
if (userList.get(i).getUsername().equals(username))
return i;
}
return -1;
}