您的位置:首页 > 产品设计 > UI/UE

(二十一)Java工具类Builder建造者模式详解

2018-02-08 13:19 399 查看

1.建造者模式

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,
它提供了一种创建对象的最佳方式。
一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。
主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,
这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定。


2.Builder接口设计为在构造器设计模式中指定一个类作为构建对象

Builder接口设计为在构造器设计模式中指定一个类作为构建对象,也就是实现Builder接口的类被标记为构造对象,
所有的构造过程及逻辑都是在构造对象的build方法中完成,最终build方法返回正在构建的对象或由生成器计算的结果的引用;


package builder;

import org.apache.commons.lang3.builder.Builder;

import common.ObjectUtils;
import ggframework.bottom.store.mongodb.DBObject;
import utils.UserAuthUtil;
/**
*
* 获取用户的权限的构建者类
*
* @version 1.0
* @since JDK1.7
* @author yaomy
* @date 2018年2月8日 上午10:09:11
*/
public class UserAuthBuilder implements Builder<Long[]>{

//账号ID
private String account_name;

public UserAuthBuilder(String account_name) {
this.account_name = account_name;
}

public String getAccount_name() {
return account_name;
}

public void setAccount_name(String account_name) {
this.account_name = account_name;
}

@Override
public Long[] build() {
//通过账户名获取用户信息
DBObject userObj = UserAuthUtil.getUserObj(this.getAccount_name());
if(ObjectUtils.isNull(userObj)) {
return null;
}
//通过用户ID获取用户所拥有的角色
Long[] roleIds = UserAuthUtil.getRoleIdsByAccountId(userObj.getLong("account_id"));
//通过角色ID查询用户拥有的授权访问对象
Long[] authIds = UserAuthUtil.getAuthByRoleIds(roleIds);

return authIds;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: