`

Effective Java 策略枚举

    博客分类:
  • java
阅读更多
//策略枚举
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第三版1

    《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,它提供了许多最佳实践和设计原则,帮助开发者写出更高效、更可维护的代码。第三版延续了这一传统,对Java语言的新特性进行了更新,并给出了...

    Effective Java.zip

    《Effective Java》是一本经典Java编程指南,作者是Joshua Bloch,这本书深入探讨了如何编写高质量、高效、可维护的Java代码。以下是对压缩包中各章节主要知识点的详细阐述: 1. **第2章 创建和销毁对象** - 单例...

    effective-java 配套代码

    《Effective Java》是Java开发领域的一本经典著作,由Joshua Bloch撰写,书中提出了一系列编程最佳实践和设计模式,帮助开发者写出更高效、更可靠、更易于维护的Java代码。配套代码`effective-java-examples-master`...

    effecctivejava 第三版中文

    《Effective Java》是Java编程领域的一本经典著作,由Joshua Bloch撰写,现在已经更新到第三版。这本书深入探讨了如何编写高效、可维护且设计良好的Java代码,是每一个Java开发者提升技能的重要参考资料。以下是对该...

    effectiveJava的笔记

    11. **设计模式**:涵盖了一些经典的面向对象设计模式,如装饰器模式、建造者模式、策略模式,以及如何在Java中实现这些模式。 12. **注解**:讨论了自定义注解的创建、元注解的使用,以及注解处理器在编译时和运行...

    Effective-Java:Effective Java中文版第二版示例代码

    《Effective Java》是Java开发领域的经典著作,由Joshua Bloch撰写,中文版第二版更是深受广大Java开发者喜爱。这本书提供了许多实用的编程实践和经验教训,帮助开发者编写出更高效、可维护的Java代码。这里我们将...

    java源码测试-effective-java:读EffectiveJava(中文版第3版)阅读源码测试案列

    《Effective Java》是Java开发领域的经典著作,由Joshua Bloch编写,中文版第三版的出版为Java开发者提供了深入理解语言特性和最佳实践的机会。这本书包含了一系列编程实践和设计模式,旨在帮助程序员写出更高效、更...

    Effective.Java3rd.zip

    在《Effective Java》第三版中,作者分享了28项关键的编程策略,涵盖了类和对象的设计、泛型、枚举、集合、并发等多个方面。以下是这些主题的一些核心知识点: 1. **使用final、static和private修饰符**:强调这三...

    java优秀源码-Effective-Java-Concepts:Java源代码可以强化概念,我正在从JoshuaBloch的出色著作“Eff

    《Effective Java》是Java开发领域的一本经典著作,由知名程序员Joshua Bloch撰写。这本书深入探讨了如何编写高效、可维护的Java代码,并提出了许多实用的编程实践和设计原则。通过对书中源代码的分析,我们可以更...

    LF_EffectiveJava:买的书籍看完必须把原始码运行完,加上自己的理解注释

    LF_EffectiveJava可能包含泛型类、泛型方法的实例,以及如何处理类型擦除的策略。 6. **迭代器与foreach循环**:书中建议优先使用foreach循环来遍历集合,因为它简洁且不易出错。项目中可能包含对比传统迭代器和...

    java设计模式之——策略模式

    在阅读《Effective Java》等编程书籍时,会发现作者常常推荐使用策略模式来代替使用重载方法或枚举类型,因为这提供了更好的灵活性和可扩展性。 总结一下,策略模式是设计模式中的重要一环,它通过将算法封装在独立...

    阿巴巴里Java开发手册-effective coding

    以上仅是《阿里巴巴Java开发手册》中的部分核心知识点,实际上手册还涵盖了更多的编码细节和最佳实践,如枚举使用、序列化策略、异常层次结构设计等。遵循这些规范,可以帮助开发者编写出更高质量、更具可维护性的...

    effecive java 中文版 第二版

    通过以上对“Effective Java 中文版 第二版”的核心知识点的总结,我们可以看到这本书覆盖了Java编程语言的各个方面,包括面向对象设计原则、类与接口的设计、对象的创建与销毁、枚举类型与注解、泛型与集合框架以及...

    effectice java第二版

    4. **枚举和注解**:介绍了枚举类型在Java中的强大功能,如枚举常量、枚举方法、枚举开关语句等,并讲解了自定义注解的创建和使用,以及元注解的应用。 5. **方法**:提倡使用重载而非覆盖,解释了如何有效地使用...

    java初学者应该阅读的书籍

    ### 第二本书:《Effective Java》(《高效Java》) #### 知识点概述 - **编程规范**:推荐最佳实践,如使用final修饰不可变类。 - **设计模式**:单例模式、工厂模式等经典设计模式的应用。 - **泛型与注解**:...

    java开发工具书.zip

    《Effective Java》(第2版)是Joshua Bloch的经典作品,它列举了23个编程实践,指导开发者写出高效、可读性强且易于维护的Java代码。书中涵盖的主题包括类和对象的设计原则、泛型、枚举、注解以及并发编程等,是...

    EFFECT JAVA 中文

    《Effective Java》是一本经典且深受程序员喜爱的书籍,由Joshua Bloch撰写,中文版为《EFFECT JAVA 中文》。这本书深入探讨了Java编程的最佳实践和常见陷阱,旨在帮助开发者写出更高效、可维护的代码。书中分为多个...

    最新的java程序员不可不学的java基础教程

    在《Effective Java 第二版》这本书中,作者深入浅出地介绍了许多Java编程的最佳实践,对于提升Java程序员的技能水平有着显著的帮助。通过阅读和实践书中的例子,开发者不仅能巩固基础,还能了解到许多高级特性,...

    Java程序员需要的电子书

    2. **《Effective Java》**:作者Joshua Bloch的著作,书中列举了23项编程实践中最重要的原则,涵盖了类与对象的设计、泛型、并发、枚举与集合等。学习这本书可以提升代码质量和可维护性。 3. **《Java并发编程实战...

Global site tag (gtag.js) - Google Analytics