首先給出聯繫人的抽象類
- package net.itaem.po;
- /**
- *
- * 電話人的信息
- * */
- public class User {
- private String name;
- private String phoneNumber;
- private String companyName;
- private String email;
- private String address;
- private String birthday;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPhoneNumber() {
- return phoneNumber;
- }
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
- public String getCompanyName() {
- return companyName;
- }
- public void setCompanyName(String companyName) {
- this.companyName = companyName;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getAddress() {
- return address;
- }
- public void setAddress(String address) {
- this.address = address;
- }
- public String getBirthday() {
- return birthday;
- }
- public void setBirthday(String birthday) {
- this.birthday = birthday;
- }
- @Override
- public String toString() {
- return "User [name=" + name + ", phoneNumber=" + phoneNumber
- + ", companyName=" + companyName + ", email=" + email
- + ", address=" + address + ", birthday=" + birthday + "]";
- }
- public User(String name, String phoneNumber, String companyName,
- String email, String address, String birthday) {
- this.name = name;
- this.phoneNumber = phoneNumber;
- this.companyName = companyName;
- this.email = email;
- this.address = address;
- this.birthday = birthday;
- }
- public User(String name, String phoneNumber){
- this.name = name;
- this.phoneNumber = phoneNumber;
- }
- }
給出操作數據庫的UserDao,這裏只是簡單的模擬操作...所以使用打印來提示操作結果
下面給出工具類,用來獲得MVC中的VIEW的請求內容
- package net.itaem.tool;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class GetInput {
- private static BufferedReader bufReader;
- static{
- bufReader = new BufferedReader(new InputStreamReader(System.in));
- }
- public static String getInputString(String info) throws IOException{
- System.out.println(info);
- String result = null;
- result = bufReader.readLine(); //讀取內存輸入的一行數據
- return result;
- }
- public static void main(String[] args) throws IOException{
- }
- }
下面給出控制類,相當於MVC中的C,Controller,這個類負責和DAO,VIEW,TOOL等其它類交互...
- package net.itaem.operate;
- import java.io.IOException;
- import net.itaem.dao.UserDao;
- import net.itaem.po.User;
- import net.itaem.tool.GetInput;
- /**
- * 操作類
- * */
- public class Operate {
- public Operate(){
- start();
- }
- public void start(){
- try {
- while(true){ //一直運行
- run();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void run() throws IOException{
- System.out.println("======================電話本===================");
- System.out.println("1查看所有聯繫人");
- System.out.println("2增加聯繫人");
- System.out.println("3刪除聯繫人");
- System.out.println("4搜索聯繫人");
- System.out.println("5退出");
- String choose = GetInput.getInputString("輸入你的選擇");
- char choice = choose.toCharArray()[0];
- switch(choice){
- case '1':
- System.out.println(UserDao.getInstance().findAll()); //輸出所有電話本用戶
- break;
- case '2':
- UserDao.getInstance().add(new User(GetInput.getInputString("輸入名字"),
- GetInput.getInputString("輸入電話號碼")));
- break;
- case '3':
- UserDao.getInstance().delete(new User(GetInput.getInputString("輸入名字"),
- GetInput.getInputString("輸入電話號碼")));
- break;
- case '4':
- System.out.println(UserDao.getInstance().findUsersByKeyword(GetInput.getInputString("輸入要查詢的關鍵字")));
- break;
- case '5':
- exit();
- break;
- default:
- System.out.println("sorry your input was wrong, please input 1、2、3、4");
- }
- }
- private void exit(){
- System.exit(0); //退出
- }
- public static void main(String[] args) {
- new Operate().start();
- }
- }
具體的程序運行結果大家可以自己測試下,或者讀讀代碼看看也應該可以明白...
下面是類圖:
總結:這個模擬並沒有什麼太大的難度,但是重點就是使用面向對象的思想去設計,然後各個類之間達到解耦。