(二十一)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; } }
相关文章推荐
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解
- (二十一)Java工具类Builder建造者模式详解