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

来源:互联网 发布:知乎 短句 编辑:程序博客网 时间:2024/05/17 05:59

代码如下:

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判断。


原创粉丝点击