三层架构实现 集合模拟登陆注册

三层架构实现 集合模拟登陆注册

结构浏览

User类 用户名和用户密码

package login_regist.pojo;  
public class User {
	private String userName;
	private String passWord;
	public User(String userName, String passWord) {
		super();
		this.userName = userName;
		this.passWord = passWord;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPassWord() {
		return passWord;
	}
	public void setPassWord(String passWord) {
		this.passWord = passWord;
	}
	
}

PlayGame 写一个小游戏类

package login_regist.game;

import java.util.Random;
import java.util.Scanner;

public class PlayGame {
	public static void Game(){
		//获取1--100之间的的随机数
		Random ran = new Random();
		int num = ran.nextInt(100)+1;
		//在控制台打印这个随机数
		System.out.println(num);
		//键盘录入
		System.out.println("输入你要猜的数字");
		Scanner sc = new Scanner(System.in);
		int input = sc.nextInt();
		//死循环猜数字
		while(true){
			if(input > num){
				System.out.println("大了,请重新输入");
				input = sc.nextInt();
			}
			if(input < num){
				System.out.println("小了,请重新输入");
				input = sc.nextInt();
			}
			if(input == num){
				System.out.println("恭喜您猜对了");
				break;
			}
			
		}
	}
}

UserService 接口 抽象的业务实现

package login_regist.service;

import login_regist.pojo.User;

public interface UserService {
	//登陆
	boolean login(User user);
	//注册
	boolean regist(User user);
}

UserServiceImpl 实现 UserService接口 具体的业务实现

    package login_regist.service.impl;
    
    import login_regist.dao.impl.UserDaoImpl;
    import login_regist.pojo.User;
    import login_regist.service.UserService;
    
    public class UserServiceImpl implements UserService {
    	
    
    	//登陆
    	public boolean login(User user) {
    		UserDaoImpl udi = new UserDaoImpl();
    		
    		if(udi.findUser(user)){
    			return true;
    		}
    		return false;
    	}
    
    	//注册
    	public boolean regist(User user) {
    		UserDaoImpl udi = new UserDaoImpl();
    		if(!udi.findUser(user)){
    			return udi.save(user);
    		}else{
    			return false;
    		}
    	}

}

UserDao 接口 数据持久层

package login_regist.dao;

import login_regist.pojo.User;

public interface UserDao {
	//查找是否存在
	boolean findUser(User user);
	//保存
	boolean save(User user);
}

UserDaoImpl 实现 UserDao接口 数据持久层

package login_regist.dao.impl;

import java.util.HashSet;

import login_regist.dao.UserDao;
import login_regist.pojo.User;
import login_regist.service.impl.UserServiceImpl;

public class UserDaoImpl implements UserDao {
	private static HashSet<User> set = new HashSet<User>();
	//查找
	public boolean findUser(User user) {
		for(User u : set){
			if(u.getUserName().equals(user.getUserName()) && u.getPassWord().equals(user.getPassWord())){
				return true;
			}
		}
		return false;
	}

	//保存
	public boolean save(User user) {
		return set.add(user);
	}
}

UserController 模拟视图层

  package login_regist.control;

import java.util.Scanner;

import login_regist.game.PlayGame;
import login_regist.pojo.User;
import login_regist.service.impl.UserServiceImpl;

public class UserController {

	
	public static void main(String[] args) {
		while(true){
			System.out.println("---------------注册界面---------------");
			System.out.println("1 注册");
			System.out.println("2 登陆");
			System.out.println("3 退出");
			System.out.println("请输入你的选择");
			
			//创建用户操作类
			UserServiceImpl usi = new UserServiceImpl();
			
			//键盘录入数据
			Scanner sc = new Scanner(System.in);
			String num = sc.nextLine();
			
			switch(num){
			case "1":
				
				System.out.println("欢迎来到注册界面");
				
				System.out.println("请输入账号");
				String username = sc.nextLine();
				
				System.out.println("请输入密码");
				String password = sc.nextLine();
				
				//把账号和密码封装成一个用户类对象
				User user1 = new User(username,password);
				
				//通过用户操作类对象调用注册方法
				//usi.regist(user);
				
				if(usi.regist(user1)){
					System.out.println("注册成功");
				}else{
					System.out.println("注册失败");
				}
				break;
			case "2":
				System.out.println("欢迎来到登陆界面");
				
				System.out.println("请输入账号");
				String inputUserName = sc.nextLine();
				
				System.out.println("请输入密码");
				String inputPassWord = sc.nextLine();
				
				//把账号和密码封装成一个用户类对象
				User user2 = new User(inputUserName,inputPassWord);
			
				//玩游戏
				if(usi.login(user2)){
					System.out.println("登陆成功");
					System.out.println("你要玩游戏吗? y/n");
					while(true){
						String playnum = sc.nextLine();
						if(playnum.equals("y")){
							PlayGame.Game();
							System.out.println("你还玩吗? y/n");
						}else{
							System.out.println("欢迎下次再来");
							break;
						}
					}	
				}else{
					System.out.println("登录不成功");
				}
				break;
				
			case "3":
				System.out.println("谢谢使用");
			//default:
				//System.out.println("谢谢使用");
				//break;
				break;
			}
		}
	}

}

猜你喜欢

转载自blog.csdn.net/weixin_44246403/article/details/86361055