当前位置: 首页 > news >正文

枚举类的设计模式

枚举类的设计模式

一、TimeUnit设计模式

当像时间种类这样的,自身属性很少,类似这种时间单位的,又有很多种不同类型的,看到TimeUnit的实现方式,可以参考来实现。下面是我自己的模拟代码,模拟jdk源码中的TimeUnit设计模式:

AnimalCategory,动物类型枚举类:

package com.test.enums;import lombok.extern.slf4j.Slf4j;/*** 动物类型枚举类*/
@Slf4j
public enum AnimalCategory {LION {public void bellow(String msg) { log.info(this.name() + "的低吼:" + msg); }int runningSpeed() { return 60; }String getFamily() { return "猫科"; }String getEater() { return "肉食"; }},TIGER {public void bellow(String msg) { log.info(this.name() + "的低吼:" + msg); }int runningSpeed() { return 70; }String getFamily() { return "猫科"; }String getEater() { return "肉食"; }},WOLF {public void bellow(String msg) { log.info(this.name() + "的低吼:" + msg); }int runningSpeed() { return 50; }String getFamily() { return "犬科"; }String getEater() { return "杂食"; }};/*** 科属,猫科还是犬科等*/abstract String getFamily();/*** 食性,肉食或素食或杂食*/abstract String getEater();/*** 动物的吼叫声*/public void bellow(String msg) {throw new AbstractMethodError();}/*** 动物的奔跑时速*/abstract int runningSpeed();
}

 

TestAnimalsCategory,测试不同的动物物种的表现:

package com.test.enums;import lombok.extern.slf4j.Slf4j;/*** 测试不同的动物物种的表现*/
@Slf4j
public class TestAnimalsCategory {public static void main(String[] args) {log.info("{}的奔跑速度为{}km/h,是{}动物,食性为{}",AnimalCategory.LION.name(), AnimalCategory.LION.runningSpeed(),AnimalCategory.LION.getFamily(), AnimalCategory.LION.getEater());AnimalCategory.LION.bellow("你在哪?");log.info("{}的奔跑速度为{}km/h,是{}动物,食性为{}",AnimalCategory.TIGER.name(), AnimalCategory.TIGER.runningSpeed(),AnimalCategory.TIGER.getFamily(), AnimalCategory.TIGER.getEater());AnimalCategory.TIGER.bellow("她在哪?");log.info("{}的奔跑速度为{}km/h,是{}动物,食性为{}",AnimalCategory.WOLF.name(), AnimalCategory.WOLF.runningSpeed(),AnimalCategory.WOLF.getFamily(), AnimalCategory.WOLF.getEater());AnimalCategory.WOLF.bellow("月色不错?");}
}

打印结果:

13:30:51.062 [main] INFO com.test.enums.TestAnimalsCategory - LION的奔跑速度为60km/h,是猫科动物,食性为肉食
13:30:51.066 [main] INFO com.test.enums.AnimalCategory - LION的低吼:你在哪?
13:30:51.066 [main] INFO com.test.enums.TestAnimalsCategory - TIGER的奔跑速度为70km/h,是猫科动物,食性为肉食
13:30:51.066 [main] INFO com.test.enums.AnimalCategory - TIGER的低吼:她在哪?
13:30:51.066 [main] INFO com.test.enums.TestAnimalsCategory - WOLF的奔跑速度为50km/h,是犬科动物,食性为杂食
13:30:51.066 [main] INFO com.test.enums.AnimalCategory - WOLF的低吼:月色不错?

 

 

 

 

--

http://www.jsqmd.com/news/449634/

相关文章:

  • GTE-Base-ZH在互联网内容生态中的应用:从文本理解到价值挖掘
  • ComfyUI快速部署:镜像开箱即用,省去复杂环境配置步骤
  • 盘点2026无线流量计值得选的品牌,专业评测给你参考 - 工业品网
  • 汇川三轴示教 可编程 触摸屏程序 自己买来学习的 功能强大 触摸屏 PLC 程序 汇川H5U与
  • 不想安装软件?几个好用的 WebP 转 PNG 在线工具推荐
  • 对比一圈后!风靡全网的降AI率网站 —— 千笔AI
  • MySQL 双机互备
  • 在线学籍管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
  • CDN安全防护体系的完整构建指南
  • OpenClaw前世今生与未来展望
  • 循环链表初识
  • 【CTFshow-pwn系列】03_栈溢出【pwn 056-057】详解:32位 与64位Shellcode 与 Linux 系统调用底层原理剖析
  • 2026徐汇宠物耳道内窥镜检查专家推荐,别错过!猫咪乳糜胸手术/狗狗绝育/宠物绝育,宠物耳道内窥镜检查专家选哪个 - 品牌推荐师
  • Qwen3-4B实战:手把手教你用纯文本模型解决日常办公问题
  • MiniCPM-o-4.5-nvidia-FlagOS快速上手:Ollama本地部署与模型管理对比
  • 【2025最新】基于SpringBoot+Vue的智慧党建系统管理系统源码+MyBatis+MySQL
  • 【ThreadLocal忘记清理把堆吃爆了:一次线上OOM救火到半夜】
  • 备课一半全耗在找素材上?老师用什么 AI 工具做课件素材,我对比后才知道差距
  • 中文语义检索新范式:GTE-Chinese-Large在无监督关键词扩展与主题建模中的创新应用
  • RexUniNLU零样本机器阅读理解教程:中文问答式信息抽取详细步骤
  • 企业级智慧学生校舍系统管理系统源码|SpringBoot+Vue+MyBatis架构+MySQL数据库【完整版】
  • DT7遥控器与DR16接收器
  • 小白努力学习技术,从1级升级开始 目前等级:13级(5/10)
  • 拒绝魔法值:用枚举/常量替代,Java代码更易维护
  • 基于瑞萨的血压测量仪电路实现
  • 《创业之路》-891- 法律的本质是利用国家的群体的力量,强制性约束自私的人性、打击残酷的兽性,维持社会的稳定。
  • HC04-Arduino UNO-LED开关
  • Qwen3-VL:30B模型应用:智能文档处理系统开发
  • 《创业之路》-892- 法律的本质是秩序,正义只是它的副产品
  • 【2026最新携程酒店爬虫分享】用Python批量爬取酒店评论,含回复内容一键保存Excel!