当前位置: 移动技术网 > IT编程>开发语言>Java > 用户登录

用户登录

2019年07月19日  | 移动技术网IT编程  | 我要评论

  完成系统登录程序,从命令行输入用户名密码。如果没有输入用户名密码,则提示输入用户名和密码;如果输入了用户名提示用户输入密码,然后判断用户名是否为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 }

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网