三层架构实现 集合模拟登陆注册
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;
}
}
}
}