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 hrs, double payRate);
double pay(double hoursWorked, double payRate) {
double basePay = hoursWorked * payRate;
return basePay + overtimePay(hoursWorked, payRate);
}
}
}
相关推荐
本资料"Swift DesignPattern"包含了一些Swift语言中的常见设计模式实例,下面我们将详细探讨这些设计模式及其在Swift中的应用。 1. **单例模式(Singleton)**:单例模式确保一个类只有一个实例,并提供全局访问点...
可以考虑增加一些高级特性,如错误处理(error handling)以防止意外情况,或者使用设计模式(design patterns)来优化代码结构,如工厂模式(Factory Pattern)用于创建游戏元素,或者策略模式(Strategy Pattern)...
* The userdiff pattern for C# learned the token "record". * "git rev-list" learns to omit the "commit <object-name>" header lines from the output with the `--no-commit-header` option. * "git ...
7. **策略模式(Strategy Pattern)**:策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户。nicommons-java 中可能包含一些策略接口和实现,以便在运行时选择合适的...
开发者可能需要利用Rust的特性,如trait、enum、pattern matching等,来编写高效且易于维护的代码。 总结来说,"age-rs"是一个尝试复刻《帝国时代》机制的跨平台RTS游戏引擎,通过Rust语言的强大特性和跨平台能力,...
10. **代码优化**:虽然这是一个简单的示例,但可以进一步优化,例如使用枚举类型(enum)表示分数段,或者使用策略模式(Strategy Pattern)动态改变评分标准。 以上就是使用Java实现成绩分段的一些核心知识点。...
行为型模式主要关注对象之间的交互和职责分配,例如策略模式(Strategy)、观察者模式(Observer)和责任链模式(Chain of Responsibility)。这些模式让代码更加模块化,支持动态改变对象的行为或策略。 “设计...
考虑到游戏中的动态性和策略性,"WeaponsATK"项目可能涉及到一些高级设计模式,如工厂模式(Factory Method)用于创建不同类型的武器,策略模式(Strategy Pattern)来定义不同的攻击策略,或者装饰器模式...
10. **设计模式**:虽然这是一个简单的游戏,但也可以用到设计模式,如命令模式(Command Pattern)来封装玩家的决策,或者策略模式(Strategy Pattern)来代表不同的游戏策略。 以上就是使用C#编写剪刀石头布游戏...
- 可能会应用到工厂模式(Factory Pattern)来创建牌对象,或者策略模式(Strategy Pattern)来处理不同的发牌策略。 10. **编码规范**: - 遵循C#的编码规范,如命名约定、注释清晰、代码结构合理等,以提高代码...