Javaコレクション(6)のユーザーログイン登録事例

6198 ワード

需要:ユーザーログイン登録ケース.
次のような操作により、オブジェクト向けの考え方をより記号化することができます.
A:どんな種類がありますか.
B:各類にはどんなものがありますか.
C:クラスとクラスの関係は何ですか.
分析:
A:どんな種類がありますか.
ユーザークラス
テストクラス
B:各類にはどんなものがありますか.
ユーザー・クラス:
メンバー変数:ユーザー名、パスワード
コンストラクションメソッドコンストラクションホウ:パラメトリックコンストラクションなし
メンバーメソッド:getXxx()/setXxx()
ログイン
       
もしユーザークラスの内容が比較的に正しいならば、将来メンテナンスするのは比較的に面倒で、もっとはっきりした分類のために、私達はユーザーをまた2種類に分けました
ユーザ基本記述クラス
メンバー変数:ユーザー名、パスワード
コンストラクションメソッドコンストラクションホウ:パラメトリックコンストラクションなし
メンバーメソッド:getXxx()/setXxx()
ユーザー操作クラス
ログイン
テストクラス:
mainメソッド.
C:クラスとクラスの関係は何ですか.
テストクラスにユーザー操作クラスとユーザー基本記述クラスのオブジェクトを作成し、その機能を使用します.
下請け:
A:機能区分
B:モジュール区分
C:モジュール別に区分し、機能別に区分する
今日は機能別に分類します.
ユーザ基本記述クラスパッケージcn.itcast.pojo
package cn.itcast.pojo;

/**
 *          
 * 
 * @author    
 * @version V1.0
 * 
 */
public class User {
	//    
	private String username;
	//   
	private String password;

	public User() {
	}

	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;
	}
}

ユーザ操作インタフェースcn.itcast.dao
package cn.itcast.dao;

import cn.itcast.pojo.User;

/**
 *              
 * 
 * @author    
 * @version V1.0
 * 
 */
public interface UserDao {
	/**
	 *         
	 * 
	 * @param username
	 *               
	 * @param password
	 *              
	 * @return         
	 */
	public abstract boolean isLogin(String username, String password);

	/**
	 *         
	 * 
	 * @param user
	 *                    
	 */
	public abstract void regist(User user);
}

ユーザ操作クラスパッケージcn.itcast.dao.impl
今日は集合実現、あと数日でIO実現、あと数日でGUI実現、就職クラスはデータベース実現
package cn.itcast.dao.impl;

import java.util.ArrayList;

import cn.itcast.dao.UserDao;
import cn.itcast.pojo.User;

/**
 *             (   )
 * 
 * @author    
 * @version V1.0
 * 
 */
public class UserDaoImpl implements UserDao {
	//                 ,           
	//         , private
	//                 , static
	private static ArrayList array = new ArrayList();

	@Override
	public boolean isLogin(String username, String password) {
		//     ,       ,                       
		boolean flag = false;

		for (User u : array) {
			if (u.getUsername().equals(username)
					&& u.getPassword().equals(password)) {
				flag = true;
				break;
			}
		}

		return flag;
	}

	@Override
	public void regist(User user) {
		//          
		// ArrayList array = new ArrayList();
		array.add(user);
	}
}

ユーザテストクラスcn.itcast.test
package cn.itcast.game;

import java.util.Scanner;

/**
 *         
 * 
 * @author    
 * @version V1.0
 * 
 */
public class GuessNumber {
	private GuessNumber() {
	}

	public static void start() {
		//        
		int number = (int) (Math.random() * 100) + 1;

		//         
		int count = 0;

		while (true) {
			//         
			Scanner sc = new Scanner(System.in);
			System.out.println("     (1-100):");
			int guessNumber = sc.nextInt();

			count++;

			//   
			if (guessNumber > number) {
				System.out.println("     " + guessNumber + "  ");
			} else if (guessNumber < number) {
				System.out.println("     " + guessNumber + "  ");
			} else {
				System.out.println("   ," + count + "     ");
				break;
			}
		}
	}
}
package cn.itcast.test;

import java.util.Scanner;

import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoImpl;
import cn.itcast.game.GuessNumber;
import cn.itcast.pojo.User;

/**
 *      
 * 
 * @author    
 * @version V1.0
 * 
 *                    A:             ,   
 *          B:       switch,   switch   break,         ,  switch  
 * 
 */
public class UserTest {
	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("       :");
			//       ,          
			Scanner sc = new Scanner(System.in);
			//             ,               
			String choiceString = sc.nextLine();

			// switch          ,       
			UserDao ud = new UserDaoImpl();

			//        ,    switch
			switch (choiceString) {
			case "1":
				//     ,         
				System.out.println("--------------    --------------");
				System.out.println("      :");
				String username = sc.nextLine();
				System.out.println("     :");
				String password = sc.nextLine();

				//       
				// UserDao ud = new UserDaomImpl();

				boolean flag = ud.isLogin(username, password);
				if (flag) {
					System.out.println("    ,        ");

					System.out.println("   ?y/n");
					while (true) {
						String resultString = sc.nextLine();
						if (resultString.equalsIgnoreCase("y")) {
							//    
							GuessNumber.start();
							System.out.println("    ?y/n");
						} else {
							break;
						}
					}
					System.out.println("    ,      ");
					System.exit(0);
					// break; //   break,    switch
				} else {
					System.out.println("         ,    ");
				}
				break;
			case "2":
				//     ,         
				System.out.println("--------------    --------------");
				System.out.println("      :");
				String newUsername = sc.nextLine();
				System.out.println("     :");
				String newPassword = sc.nextLine();

				//                
				User user = new User();
				user.setUsername(newUsername);
				user.setPassword(newPassword);

				//       
				//   
				// UserDao ud = new UserDaoImpl();
				//      
				// UserDaoImpl udi = new UserDaoImpl();

				ud.regist(user);
				System.out.println("    ");
				break;
			case "3":
			default:
				System.out.println("    ,      ");
				System.exit(0);
				break;
			}
		}
	}
}