`
chandler
  • 浏览: 81613 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自己网站的UserFactory类介绍

OO 
阅读更多

  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)
1
0
分享到:
评论

相关推荐

    Laravel开发-laravel-fixtures

    在Laravel框架中,`laravel-fixtures`通常指的是数据 fixtures,这是一种用于填充数据库测试数据的方法。Fixtures在软件开发中扮演着重要角色,尤其是...通过深入学习和实践,开发者可以更高效地调试和维护自己的应用。

    birt_POJO作数据源

    接下来,我们创建一个`UserFactory`类,用于生成`User`对象的列表。这可以模拟实际应用中从数据库或其他数据源获取数据的情况。在`listUsers()`方法中,我们创建了一些硬编码的`User`实例,并将它们添加到列表中返回...

    SubversionAuthenticationParserModule.zip

    User user = UserFactory.createInstance("*"); AccessRule accessRuleRoot = new AccessRule("/"); accessRuleRoot.add(user, AccessLevel.READ); accessRules.add(accessRuleRoot); User userHarry = UserFactory...

    php设计模式

    在这个例子中,`UserFactory` 类扮演了工厂的角色,而 `IUser` 是抽象产品角色,`User` 类则是具体产品角色。 **实际应用**: 在实际项目中,工厂模式可以用于创建数据库连接、日志记录器等组件,特别是当需要动态...

    Laravel开发-doctrine-entity-factories

    在 Laravel 中,通常使用 Faker 库来生成模拟数据,但 Doctrine Entity Factories 提供了一种更结构化的方法,使我们可以为每个实体定义自己的工厂类,这样就能更好地控制实体的创建过程。 **一、什么是 Doctrine ...

    calendar-app

    日历这是办公室中会议室的简单会议计划日历。如何运行应用程序在终端中运行npm install 。... Factory Method用于创建User和Admin类(UserFactory类)的实例。 装饰器模式用于Server类的实例,以显示指示服务器

    开发资料下载_设计模式

    使用工厂模式,我们可以创建一个UserFactory,该工厂可以根据输入参数动态地返回不同类型的User对象,使得系统对用户类型的变化具有更好的适应性。 四、学习设计模式的资源 对于初学者,推荐阅读《设计模式:可...

    PyPI 官网下载 | django-factory-boy-generator-1.0.3.tar.gz

    它利用了 `factory_boy` 库的功能,为 Django 模型提供方便的工厂类来创建测试数据。在 `django-factory-boy-generator` 的 1.0.3 版本中,我们可以期待一些优化和改进,使得测试过程更加高效和简洁。 首先,让我们...

    Laravel开发-laravel-test-factory-helper

    测试工厂是在`database/factories`目录下定义的类,它们通常继承自`Illuminate\Database\Eloquent\Factories\Factory`。每个工厂类都包含一个`$definition`属性,其中定义了如何构建模型实例的方法。例如,你可以...

    PHP设计模式之工厂模式详解

    } class DeveloperFactory extends UserFactory { public function createUser() { return new User('Developer', 'Male', 'Coding'); } } class DesignerFactory extends UserFactory { public function create...

    laravel 私有包(工厂模式demo)

    工厂模式是设计模式的一种,常用于对象的创建,它提供了一种抽象的方式来实例化对象,使得在不指定具体类的情况下,可以创建并返回对象。本示例将探讨如何在 Laravel 中使用工厂模式创建私有包。 首先,我们需要...

    Laravel开发-generator .zip

    如`php artisan make:factory UserFactory`会创建一个`UserFactory`类。 - **请求生成器** (`make:request`): 创建自定义的HTTP请求类,用于验证和处理输入数据。如`php artisan make:request CreateUserRequest`...

    java常用设计模式-空对象模式

    最后,我们定义了一个工厂类 UserFactory,用于创建用户。如果传入的名称为 null,则返回一个空对象 NullUser,否则返回一个真实的用户 RealUser。 在使用空对象模式时,我们需要注意以下几点: 1. 定义一个空对象...

    Laravel开发-factory-generator

    3. 使用:运行自定义的Artisan命令,如`php artisan make:factory UserFactory --model=User`,这会根据指定的模型(User)生成一个相应的工厂类。 模型工厂的定义通常包括随机数据生成器,例如`$factory->define...

    姿势:在几秒钟内在Laravel应用程序中创建基于类的模型工厂

    Laravel基于类的模型工厂只需几秒钟! 编写看起来像这样的性感测试... /** @test */ public function a_user_can_have_customers () { UserFactory :: times ( 20 ) -> hasAddress () -> withCustomers ( ...

    使用三层结构与抽象工厂设计模式实现窗体登录(080712)

    在登录场景中,可以有一个`UserFactory`抽象工厂,它定义了一个创建用户对象的接口,比如`CreateUser(string username, string password)`。然后,根据不同的环境或条件,我们可以有不同的具体工厂实现,比如`...

Global site tag (gtag.js) - Google Analytics