




















一、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的低吼:月色不错?
--
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。