用户登录
程序员文章站
2022-07-05 10:34:47
完成系统登录程序,从命令行输入用户名密码。如果没有输入用户名密码,则提示输入用户名和密码;如果输入了用户名提示用户输入密码,然后判断用户名是否为mldn,密码是否为hello,如果正确,则提示登录成功;如果错误显示登录失败信息,用户再次输入用户名和密码,连续3次输入错误后系统退出。 对于此时的程序发 ......
完成系统登录程序,从命令行输入用户名密码。如果没有输入用户名密码,则提示输入用户名和密码;如果输入了用户名提示用户输入密码,然后判断用户名是否为mldn,密码是否为hello,如果正确,则提示登录成功;如果错误显示登录失败信息,用户再次输入用户名和密码,连续3次输入错误后系统退出。
对于此时的程序发现,可以将用户名和密码同时输入,也可以先输入用户名,后输入密码,如果超过3次就表示登录结束,对于用户名和密码的使用可以采用“用户名/密码”的形式完成,如果没有发现“/”表示没有输入密码。
1.定义用户的操作接口
1 package com.alibaba.demo.service; 2 3 public interface iuserservice { 4 public boolean isexit(); 5 public boolean login(string username, string password); 6 }
2.定义用户操作接口的子类
1 package com.alibaba.demo.service.impl; 2 3 import com.alibaba.demo.service.iuserservice; 4 5 public class userserviceimpl implements iuserservice { 6 private int count=0; 7 @override 8 public boolean isexit() { 9 return this.count>=3; 10 } 11 @override 12 public boolean login(string username, string password) { 13 this.count++; 14 return "mldn".equals(username) && "hello".equals(password); 15 } 16 }
3.对于用户的登录失败检测处理操作,应该单独定义一个用户的代理操作类
1 package com.alibaba.demo.service.proxy; 2 import com.alibaba.demo.service.iuserservice; 3 import cn.com.sina.demo.util.inpututil; 4 5 public class userserviceproxy implements iuserservice { 6 private iuserservice userservice; 7 public userserviceproxy(iuserservice userservice) { 8 this.userservice = userservice; 9 } 10 @override 11 public boolean isexit() { 12 return this.userservice.isexit(); 13 } 14 @override 15 public boolean login(string username,string password) { 16 while (!this.isexit()) { 17 string inputdata = inpututil.getstring("请输入登录信息:"); 18 if(inputdata.contains("/")) { 19 string tmp[] = inputdata.split("/"); 20 if(this.userservice.login(tmp[0], tmp[1])) { 21 return true; 22 }else { 23 system.out.println("登录失败,错误的用户名或密码!"); 24 } 25 }else { 26 string pwd = inpututil.getstring("请输入密码:"); 27 if(this.userservice.login(inputdata, pwd)) { 28 return true; 29 }else { 30 system.out.println("登录失败,错误的用户名或密码!"); 31 } 32 } 33 } 34 return false; 35 } 36 }
4.定义工厂类
1 package com.alibaba.demo.service.factory; 2 3 import com.alibaba.demo.service.iuserservice; 4 import com.alibaba.demo.service.impl.userserviceimpl; 5 import com.alibaba.demo.service.proxy.userserviceproxy; 6 7 public class factory { 8 private factory() {} 9 public static iuserservice getinstance() { 10 return new userserviceproxy(new userserviceimpl()); 11 } 12 }
5.信息输入处理类
1 package cn.com.sina.demo.util; 2 3 import java.io.bufferedreader; 4 import java.io.inputstreamreader; 5 6 public class inpututil { 7 private static final bufferedreader input = new bufferedreader(new inputstreamreader(system.in)); 8 private inpututil() {} 9 public static string getstring(string prompt) { 10 string str = null; 11 boolean flag = true; 12 while(flag) { 13 system.out.println(prompt); 14 try { 15 str = input.readline().trim(); 16 if(!"".equals(str)) { 17 flag = false; 18 }else { 19 system.out.println("输入的内容不能为空!"); 20 } 21 } catch (exception e) { 22 system.out.println("输入的内容不能为空!"); 23 } 24 } 25 return str; 26 } 27 }
6.定义测试处理类
1 package com.alibaba.demo; 2 3 import com.alibaba.demo.service.factory.factory; 4 5 public class iocasedemo { 6 public static void main(string[] args) { 7 system.out.println(factory.getinstance().login(null, null)); 8 } 9 }
上一篇: 详解webpack性能优化——DLL
下一篇: Android前沿技术