首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

自各儿网站的UserFactory类介绍

2012-11-10 
自己网站的UserFactory类介绍/**这是我写的第一个方法。主要是通过用户名,密码来获取一个User。很多关于User

自己网站的UserFactory类介绍

/**     这是我写的第一个方法。主要是通过用户名,密码来获取一个User。很多关于User的很多想法也是在这个类中慢慢的成熟的。概括下来为以下这几点。     首先,User分为简短的完整的区别。这当然还是基于一些实际的估计,因为User很多时候只是一个身份的标识,而得user类定位在是一个用户的代表,所以就想到了区别。但是实现起来的方法还是比较原始,这里就不说了。当让希望以后能够用到代理的想法。*/         public User getUserByName (String username,String password)                                             throws UserNotExistException,              //用户不存在错                                                      PasswordWrongException,             //密码不对错                                                      RoleWrongException{                 //权限不错在错
/***      添加一个用户,在这里,你也可以看到参数都是对象*      在写这个方法的最开始,我也想过就是提供一些基本的个人信息做为参数,比方说,我就建了个参数有用户名,密码和userinfo的方法。而这个方法调用哪个方法。*      但是最后放弃了。因为那样不OO,最近在看《代码大全》。在里面学到了一个叫做抽象数据(具体的名字忘了)的概念。我的理解应该是把数据当成一个对象来进行思考,而不是基本的数据。因为对象相对于数据有着更不容易变化的特性。*  比方说这里,现在有User类有ID(数据库自动生成),name和password(由于我把password的set的作用域写成了default,无法包外调用,所以这里只好当做参数传入)。那么现在看似那个方法比较可行。但是如果说日后,我打算往User里   *  加入其它参数呢?就需要一个新的函数。可能调用它的所有方法都需要改。但是如果我把它当成一个User,那显然方便了很多。*/         public boolean storeUser(User user,UserInfo userinfo,String password)/***    这个类的作用就是用数据库中的数据,初始化user里的userinfo属性。      其实这里的这个方法我觉得比较容易放入infoutils这个类中,但是呢,最后我还是把它放在了这里。因为我觉得,userfactory应该是唯一和外界交互的一个类。      这个方法,在实际操作的时候,我写了一个Transaction类来实现数据库的事务。
* @param user*/     public void iniUserInfo(User user)/*** 作用同上,如果细心,可以发现这个方法会抛一个异常。而在初始化信息的时候则不会。因为我觉得,一个用户的肯定有一个角色,如果找不到,那么就是出错。但是一个用户可以没有详细的信息。* @param user* @throws RoleWrongException*/       public void iniUserRole(User user) throws RoleWrongException{             //权限装载出错
/*** 判断用户是否存在,* @param username* @return boolean ture为该用户存在 false为该用户不存在*/         public boolean userExist(User user)/*** 因为有些用户需要在外面装配么,需要一个空的userInfo类。这里出去的userInfo类的id已经获得了一个UUID* @return*/    public UserInfo getEmptyInfo()
/*** 作用同上面那个方法。* @return*/      public User getEmptyUser()/*** 测试密码是否为这个用户的* @param user          被测试的用户* @param password      测试的密码* @return              一致,则为true,反之则为false*/         public boolean checkPassword(User user,String password)
/*** 删除用户* @param user*/         public void deleteUser(User user)
/***  更改密码* @param user* @param newpassword* @return 修改成功返回true,反之则为false*/
     public boolean ChangePassword(User user,String newpassword)
/***     修改个人信息。* @param user* @return*/     public boolean modifyinfo(User user)

热点排行