自己网站的UserFactory类介绍

本文介绍了UserFactory类的设计理念与核心方法,包括用户获取、存储、信息初始化等功能,并探讨了面向对象设计原则的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  UserFactory类
     UserFactory我为了达到除了一些类当中的get和set方法之外的,与外部有联系的唯一的一个类的效果。所以一些和初衷(这个类只是处理User和其他类的组装)相背的方法也写入到了这个类当中。
      当然写个网站我还刚刚开始。这些方法不可能都很实用。所以以后还要扩展。
      整个用户系统的源代码可以再附件中得到。
    
/**
     这是我写的第一个方法。主要是通过用户名,密码来获取一个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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值