Code Fragment-使用枚举策略模式表示状态

本文介绍了一种使用枚举类型来实现状态模式的方法,通过枚举不仅能够清晰地定义各种状态,还能携带每种状态的相关信息,从而简化了状态转换及状态相关行为的实现。

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

代码如下:

package com.jue.test;

public enum DownloadStatus {

	STATUS_DOWNLOAD_ING("下载中", "下载时的icon", "点击暂停"),
	STATUS_DOWNLOAD_DONE("下载已经完成", "完成的icon", "点击安装"),
	STATUS_DOWNLOAD_NEW("新建任务","新的下载任务icon", "点击下载"),
	STATUS_DOWNLOAD_PAUSE("暂停下载", "暂停的icon","点击继续下载");

	String title;
	String iconDes;
	String action;

	private DownloadStatus(String title, String iconDes, String action) {
		this.title = title;
		this.iconDes = iconDes;
		this.action = action;
	}

}

测试调用如下:

package com.jue.test;

public class Video {

	public DownloadStatus status = DownloadStatus.STATUS_DOWNLOAD_NEW;

	public static void main(String[] args) {
		Video video = new Video();
		video.status = DownloadStatus.STATUS_DOWNLOAD_ING;
		display(video.status.title, video.status.iconDes, video.status.action);
	}

	public static void display(String status, String iconDes, String action) {
		System.out.println("现在是  [" + status + "]  状态,显示的是[" + iconDes
				+ "],点击会触发  [" + action+"]");
	}
}

优点如下:

  1. 枚举的状态值本身携带了状态的一些信息,保证了数据的一致性,摒弃了大量的if else或switch case判断。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值