//策略枚举
public enum PayrollDay {
MONDAY(PayType.WEEKDAY),
TUESDAY(PayType.WEEKDAY),
WEDNESDAY(PayType.WEEKDAY),
THURSDAY(PayType.WEEKDAY),
FRIDAY(PayType.WEEKDAY),
SATURDAY(PayType.WEEKEND),
SUNDAY(PayType.WEEKEND);
private final PayType payType;
PayrollDay(PayType payType){
this.payType = payType;
}
double pay(double hoursWorked,double payRate){
return payType.pay(hoursWorked, payRate);
}
//the strategy enum type
private enum PayType {
WEEKDAY {
double overtimePay(double hours,double payRate){
return hours <= HOURS_PER_SHIFT ? 0 : (hours - HOURS_PER_SHIFT) * payRate / 2;
}
},
WEEKEND{
double overtimePay(double hours,double payRate){
return hours * payRate / 2;
}
};
private static final int HOURS_PER_SHIFT = 8;
abstract double overtimePay(double hoursWorked,double payRate);
double pay(double hoursWorked,double payRate){
double basePay = hoursWorked * payRate;
return basePay + overtimePay(hoursWorked, payRate);
}
}
}
测试类
public class PayrollDayTest {
public static void main(String[] args) {
System.out.println(PayrollDay.MONDAY.pay(12d, 12d));
System.out.println(PayrollDay.TUESDAY.pay(12d, 12d));
System.out.println(PayrollDay.WEDNESDAY.pay(12d, 12d));
System.out.println(PayrollDay.THURSDAY.pay(12d, 12d));
System.out.println(PayrollDay.FRIDAY.pay(12d, 12d));
System.out.println(PayrollDay.SATURDAY.pay(12d, 12d));
System.out.println(PayrollDay.SUNDAY.pay(12d, 12d));
}
}
分享到:
相关推荐
《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,它提供了许多最佳实践和设计原则,帮助开发者写出更高效、更可维护的代码。第三版延续了这一传统,对Java语言的新特性进行了更新,并给出了...
《Effective Java》是一本经典Java编程指南,作者是Joshua Bloch,这本书深入探讨了如何编写高质量、高效、可维护的Java代码。以下是对压缩包中各章节主要知识点的详细阐述: 1. **第2章 创建和销毁对象** - 单例...
《Effective Java》是Java开发领域的一本经典著作,由Joshua Bloch撰写,书中提出了一系列编程最佳实践和设计模式,帮助开发者写出更高效、更可靠、更易于维护的Java代码。配套代码`effective-java-examples-master`...
《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,现在已经更新到第三版。这本书深入探讨了如何编写高效、可维护且设计良好的Java代码,是每一个Java开发者提升技能的重要参考资料。以下是对该...
11. **设计模式**:涵盖了一些经典的面向对象设计模式,如装饰器模式、建造者模式、策略模式,以及如何在Java中实现这些模式。 12. **注解**:讨论了自定义注解的创建、元注解的使用,以及注解处理器在编译时和运行...
《Effective Java》是Java开发领域的经典著作,由Joshua Bloch撰写,中文版第二版更是深受广大Java开发者喜爱。这本书提供了许多实用的编程实践和经验教训,帮助开发者编写出更高效、可维护的Java代码。这里我们将...
《Effective Java》是Java开发领域的经典著作,由Joshua Bloch编写,中文版第三版的出版为Java开发者提供了深入理解语言特性和最佳实践的机会。这本书包含了一系列编程实践和设计模式,旨在帮助程序员写出更高效、更...
在《Effective Java》第三版中,作者分享了28项关键的编程策略,涵盖了类和对象的设计、泛型、枚举、集合、并发等多个方面。以下是这些主题的一些核心知识点: 1. **使用final、static和private修饰符**:强调这三...
《Effective Java》是Java开发领域的一本经典著作,由知名程序员Joshua Bloch撰写。这本书深入探讨了如何编写高效、可维护的Java代码,并提出了许多实用的编程实践和设计原则。通过对书中源代码的分析,我们可以更...
LF_EffectiveJava可能包含泛型类、泛型方法的实例,以及如何处理类型擦除的策略。 6. **迭代器与foreach循环**:书中建议优先使用foreach循环来遍历集合,因为它简洁且不易出错。项目中可能包含对比传统迭代器和...
在阅读《Effective Java》等编程书籍时,会发现作者常常推荐使用策略模式来代替使用重载方法或枚举类型,因为这提供了更好的灵活性和可扩展性。 总结一下,策略模式是设计模式中的重要一环,它通过将算法封装在独立...
以上仅是《阿里巴巴Java开发手册》中的部分核心知识点,实际上手册还涵盖了更多的编码细节和最佳实践,如枚举使用、序列化策略、异常层次结构设计等。遵循这些规范,可以帮助开发者编写出更高质量、更具可维护性的...
通过以上对“Effective Java 中文版 第二版”的核心知识点的总结,我们可以看到这本书覆盖了Java编程语言的各个方面,包括面向对象设计原则、类与接口的设计、对象的创建与销毁、枚举类型与注解、泛型与集合框架以及...
4. **枚举和注解**:介绍了枚举类型在Java中的强大功能,如枚举常量、枚举方法、枚举开关语句等,并讲解了自定义注解的创建和使用,以及元注解的应用。 5. **方法**:提倡使用重载而非覆盖,解释了如何有效地使用...
### 第二本书:《Effective Java》(《高效Java》) #### 知识点概述 - **编程规范**:推荐最佳实践,如使用final修饰不可变类。 - **设计模式**:单例模式、工厂模式等经典设计模式的应用。 - **泛型与注解**:...
《Effective Java》(第2版)是Joshua Bloch的经典作品,它列举了23个编程实践,指导开发者写出高效、可读性强且易于维护的Java代码。书中涵盖的主题包括类和对象的设计原则、泛型、枚举、注解以及并发编程等,是...
《Effective Java》是一本经典且深受程序员喜爱的书籍,由Joshua Bloch撰写,中文版为《EFFECT JAVA 中文》。这本书深入探讨了Java编程的最佳实践和常见陷阱,旨在帮助开发者写出更高效、可维护的代码。书中分为多个...
在《Effective Java 第二版》这本书中,作者深入浅出地介绍了许多Java编程的最佳实践,对于提升Java程序员的技能水平有着显著的帮助。通过阅读和实践书中的例子,开发者不仅能巩固基础,还能了解到许多高级特性,...
2. **《Effective Java》**:作者Joshua Bloch的著作,书中列举了23项编程实践中最重要的原则,涵盖了类与对象的设计、泛型、并发、枚举与集合等。学习这本书可以提升代码质量和可维护性。 3. **《Java并发编程实战...