Java模擬電話本操作

首先給出聯繫人的抽象類

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. package net.itaem.po;  
  2.   
  3. /**  
  4.  *   
  5.  * 電話人的信息  
  6.  * */  
  7. public class User {  
  8.   
  9.     private String name;  
  10.     private String phoneNumber;  
  11.     private String companyName;  
  12.     private String email;  
  13.     private String address;  
  14.     private String birthday;  
  15.       
  16.       
  17.     public String getName() {  
  18.         return name;  
  19.     }  
  20.     public void setName(String name) {  
  21.         this.name = name;  
  22.     }  
  23.     public String getPhoneNumber() {  
  24.         return phoneNumber;  
  25.     }  
  26.     public void setPhoneNumber(String phoneNumber) {  
  27.         this.phoneNumber = phoneNumber;  
  28.     }  
  29.     public String getCompanyName() {  
  30.         return companyName;  
  31.     }  
  32.     public void setCompanyName(String companyName) {  
  33.         this.companyName = companyName;  
  34.     }  
  35.     public String getEmail() {  
  36.         return email;  
  37.     }  
  38.     public void setEmail(String email) {  
  39.         this.email = email;  
  40.     }  
  41.     public String getAddress() {  
  42.         return address;  
  43.     }  
  44.     public void setAddress(String address) {  
  45.         this.address = address;  
  46.     }  
  47.     public String getBirthday() {  
  48.         return birthday;  
  49.     }  
  50.     public void setBirthday(String birthday) {  
  51.         this.birthday = birthday;  
  52.     }  
  53.     @Override  
  54.     public String toString() {  
  55.         return "User [name=" + name + "phoneNumber=" + phoneNumber  
  56.                 + ", companyName=" + companyName + "email=" + email  
  57.                 + ", address=" + address + "birthday=" + birthday + "]";  
  58.     }  
  59.     public User(String name, String phoneNumber, String companyName,  
  60.             String email, String address, String birthday) {  
  61.         this.name = name;  
  62.         this.phoneNumber = phoneNumber;  
  63.         this.companyName = companyName;  
  64.         this.email = email;  
  65.         this.address = address;  
  66.         this.birthday = birthday;  
  67.     }  
  68.       
  69.     public User(String name, String phoneNumber){  
  70.         this.name = name;  
  71.         this.phoneNumber = phoneNumber;  
  72.     }  
  73.       
  74. }  

給出操作數據庫的UserDao,這裏只是簡單的模擬操作...所以使用打印來提示操作結果


下面給出工具類,用來獲得MVC中的VIEW的請求內容

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. package net.itaem.tool;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStreamReader;  
  6.   
  7. public class GetInput {  
  8.     private static BufferedReader bufReader;  
  9.       
  10.     static{  
  11.         bufReader = new BufferedReader(new InputStreamReader(System.in));  
  12.     }  
  13.       
  14.     public static String getInputString(String info) throws IOException{  
  15.         System.out.println(info);  
  16.         String result = null;  
  17.         result = bufReader.readLine();   //讀取內存輸入的一行數據  
  18.         return result;  
  19.     }  
  20.       
  21.     public static void main(String[] args) throws IOException{  
  22.     }  
  23. }  

下面給出控制類,相當於MVC中的C,Controller,這個類負責和DAO,VIEW,TOOL等其它類交互...

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片
  1. package net.itaem.operate;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import net.itaem.dao.UserDao;  
  6. import net.itaem.po.User;  
  7. import net.itaem.tool.GetInput;  
  8.   
  9. /**  
  10.  * 操作類  
  11.  * */  
  12. public class Operate {  
  13.       
  14.     public Operate(){  
  15.         start();  
  16.     }  
  17.       
  18.     public void start(){  
  19.         try {  
  20.             while(true){   //一直運行  
  21.                 run();  
  22.             }  
  23.         } catch (IOException e) {  
  24.             e.printStackTrace();  
  25.   
  26.         }         
  27.     }  
  28.   
  29.     private void run() throws IOException{  
  30.         System.out.println("======================電話本===================");  
  31.   
  32.         System.out.println("1查看所有聯繫人");  
  33.         System.out.println("2增加聯繫人");  
  34.         System.out.println("3刪除聯繫人");  
  35.         System.out.println("4搜索聯繫人");  
  36.         System.out.println("5退出");  
  37.   
  38.         String choose = GetInput.getInputString("輸入你的選擇");  
  39.         char choice = choose.toCharArray()[0];  
  40.         switch(choice){  
  41.         case '1':  
  42.             System.out.println(UserDao.getInstance().findAll());  //輸出所有電話本用戶  
  43.             break;  
  44.         case '2':  
  45.             UserDao.getInstance().add(new User(GetInput.getInputString("輸入名字"),   
  46.                     GetInput.getInputString("輸入電話號碼")));  
  47.             break;  
  48.         case '3':  
  49.             UserDao.getInstance().delete(new User(GetInput.getInputString("輸入名字"),   
  50.                     GetInput.getInputString("輸入電話號碼")));  
  51.             break;  
  52.         case '4':  
  53.             System.out.println(UserDao.getInstance().findUsersByKeyword(GetInput.getInputString("輸入要查詢的關鍵字")));  
  54.             break;  
  55.         case '5':  
  56.             exit();  
  57.             break;  
  58.         default:  
  59.             System.out.println("sorry your input was wrong, please input 1、2、3、4");   
  60.         }  
  61.     }  
  62.   
  63.     private void exit(){  
  64.         System.exit(0);  //退出  
  65.     }  
  66.   
  67.     public static void main(String[] args) {  
  68.         new Operate().start();  
  69.     }  
  70. }  

具體的程序運行結果大家可以自己測試下,或者讀讀代碼看看也應該可以明白...

下面是類圖:

總結:這個模擬並沒有什麼太大的難度,但是重點就是使用面向對象的思想去設計,然後各個類之間達到解耦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章