项目(1)----用户信息管理系统(3)---项目开发(业务处理层)
项目开发---业务处理层
这里主要实现下面两个包中的类,其实性质和Dao和Dao的实现类一样,但为了规范,这里在写接口和实现类
1.com.study.user.service //接口包
1.UserService.java
2. com.study.user.service.impl //实现接口类
1.UserServiceImpl.java
3.DaoFacotory 类
4.Globals类
1.UserService.java
import java.util.List; import com.study.user.model.User; public interface UserService { public void add(User user); public void del(String id); public void update(User user); public User find(String id); public List<User> getAll(); }
2.UserServiceImpl.java
1 import java.util.List; 2 3 import com.study.user.dao.UserDao; 4 import com.study.user.dao.impl.UserDaoImpl; 5 import com.study.user.model.User; 6 import com.study.user.service.UserService; 7 import com.study.user.utils.DaoFacotory; 8 9 public class UserServiceImpl implements UserService{ 10 12 // private UserDao dao =new UserDaoImpl(); 如果用这种模式那么每次调用都会创建一个对象,而通过下面就只创建一个对象 13 14 private UserDao udao=DaoFacotory.getInstance().createDao("com.guigu.user.dao.impl.UserDaoImpl", UserDao.class); 15 16 public void addUser(User user) { 17 udao.add(user); 18 } 19 20 public List<User> getAll() { 21 return udao.getAll(); 22 } 23 24 public void del(String id) { 25 udao.del(id); 26 } 27 28 public void update(User user) { 29 udao.update(user); 30 } 31 32 public User find(String id) { 33 34 return udao.find(id); 35 } 36 }
3.DaoFacotory 类
1 import com.study.user.dao.UserDao; 2 /* 3 * 这个通过单例模式来获得一个对象,在通过这个对象调用createDao方法,返回的也永远是同一个对象,这个很有用 4 */ 5 public class DaoFacotory { 6 7 private DaoFacotory() { 8 9 } 10 11 private static final DaoFacotory facotory = new DaoFacotory(); 12 13 // 提供共有的方法获取实例对象 14 public static DaoFacotory getInstance() { 15 return facotory; 16 } 17 /*根据不同的Dao类型创建不同的对象 18 * 得到对象:DaoFacotory.getInstance().createDao("com.study.user.dao.impl.UserDaoImpl", UserDao.class); 19 */ 20 public <T> T createDao(String className, Class<T> clazz) { 21 try { 22 T t = (T) Class.forName(className).newInstance(); 23 return t; 24 } catch (Exception e) { 25 System.out.println("这里错了"); 26 throw new RuntimeException(); 27 } 28 } 29 }
4.Globals类
/* * 因为我的兴趣爱好和类型是写在java类中而不是写在jsp界面中的,目的也是有更好的可操作性,所以单独建立这个类 * */ public class Globals { public static String [] preferences ={"唱歌","跳舞","睡觉","学习","游戏","篮球"}; public static String [] types={"博士生","研究生","本科生","专科生","高中生"}; }