给某个类加状态,当状态为初始化完成时才可以使用

1、设计

状态支持,继承该类则具有以下功能:设置状态为“未初始化”、设置状态为“初始化中”、设置状态SEI“初始化完毕”,判断对象是否可用,则需要调isAvailable()

package spzc.platform.model;

/**
 * 状态支持,继承该类则具有以下功能:设置状态为“未初始化”、设置状态为“初始化中”、设置状态SEI“初始化完毕”,判断对象是否可用,则需要调available()
 * @author live
 * Jan 7, 2019 6:56:39 PM
 */
abstract public class StatusSupport {

	private static final String STATUS_UNINITIALIZED = "uninitialized";// 状态,未初始化
	private static final String STATUS_ININIALIZING = "ininializing";// 初始化中
	private static final String STATUS_INITIALIZED = "initialized";// 初始化完毕

	private String status = STATUS_UNINITIALIZED;
	protected boolean available = false;

	public String getStatus() {
		return status;
	}

	protected void setUninitialized() {
		setStatus(STATUS_UNINITIALIZED);
	}

	protected void setIninializing() {
		setStatus(STATUS_ININIALIZING);
	}

	protected void setInitialized() {
		setStatus(STATUS_INITIALIZED);
	}

	protected void setStatus(String status) {
		this.status = status;
		if (!STATUS_INITIALIZED.equals(this.getStatus())) {
			this.setAvailable(false);
		} else {
			this.setAvailable(false);
		}
	}

	public boolean isAvailable() {
		return available;
	}

	protected void setAvailable(boolean available) {
		this.available = available;
	}
}

2、使用示例:

package spzc.platform.model.domain;

import core.data.entity.Entity;
import spzc.platform.model.StatusSupport;
import spzc.platform.model.role.RoleManager;
import spzc.platform.model.user.UserManager;

/**
 * 域
 * 
 * @author live
 * @date Dec 18, 2018 3:46:46 PM
 */
public class Domain extends StatusSupport{
	private UserManager userManager;
	private RoleManager roleManager;

	private String id;
	private String name;
	
	public Domain() {
		setUninitialized();
		this.userManager = new UserManager();
		this.roleManager = new RoleManager();
	}

	public Domain(String domainName) {
		setIninializing();
		this.userManager = new UserManager(domainName);
		this.roleManager = new RoleManager(domainName);
		setInitialized();
	}

	// TODO 待补充
	public Domain(Entity entity) {
		this();
		this.setId(entity.get_Id());
		this.setName(entity.getValue("name", String.class));
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public UserManager getUserManager() {
		return userManager;
	}

	public void setUserManager(UserManager userManager) {
		this.userManager = userManager;
	}

	public RoleManager getRoleManager() {
		return roleManager;
	}

	public void setRoleManager(RoleManager roleManager) {
		this.roleManager = roleManager;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public boolean isAvailable() {
		return super.isAvailable() && this.getRoleManager().isAvailable() && this.getUserManager().isAvailable();
	}
	
	
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值