哈哈,大家平时都在使用电话本,下面使用java来模拟而一个简单的电话本吧...
首先给出联系人的抽象类
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(); } }
具体的程序运行结果大家可以自己测试下,或者读读代码看看也应该可以明白...
下面是类图:
总结:这个模拟并没有什么太大的难度,但是重点就是使用面向对象的思想去设计,然后各个类之间达到解耦。
时间: 2024-10-12 19:52:22