`
ootabc
  • 浏览: 110590 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

strategy enum pattern

    博客分类:
  • java
 
阅读更多
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 DesignPattern"包含了一些Swift语言中的常见设计模式实例,下面我们将详细探讨这些设计模式及其在Swift中的应用。 1. **单例模式(Singleton)**:单例模式确保一个类只有一个实例,并提供全局访问点...

    自己创作石头剪刀布棋

    可以考虑增加一些高级特性,如错误处理(error handling)以防止意外情况,或者使用设计模式(design patterns)来优化代码结构,如工厂模式(Factory Pattern)用于创建游戏元素,或者策略模式(Strategy Pattern)...

    GIT2.33.0.2最新版本.zip

    * The userdiff pattern for C# learned the token "record". * "git rev-list" learns to omit the "commit &lt;object-name&gt;" header lines from the output with the `--no-commit-header` option. * "git ...

    nicommons-java:Java 的可重用模式

    7. **策略模式(Strategy Pattern)**:策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户。nicommons-java 中可能包含一些策略接口和实现,以便在运行时选择合适的...

    age-rs-基于帝国时代机制的跨平台RTS游戏引擎核心.zip

    开发者可能需要利用Rust的特性,如trait、enum、pattern matching等,来编写高效且易于维护的代码。 总结来说,"age-rs"是一个尝试复刻《帝国时代》机制的跨平台RTS游戏引擎,通过Rust语言的强大特性和跨平台能力,...

    JAVA实现成绩分段_ 简单示例

    10. **代码优化**:虽然这是一个简单的示例,但可以进一步优化,例如使用枚举类型(enum)表示分数段,或者使用策略模式(Strategy Pattern)动态改变评分标准。 以上就是使用Java实现成绩分段的一些核心知识点。...

    java与模式

    行为型模式主要关注对象之间的交互和职责分配,例如策略模式(Strategy)、观察者模式(Observer)和责任链模式(Chain of Responsibility)。这些模式让代码更加模块化,支持动态改变对象的行为或策略。 “设计...

    WeaponsATK

    考虑到游戏中的动态性和策略性,"WeaponsATK"项目可能涉及到一些高级设计模式,如工厂模式(Factory Method)用于创建不同类型的武器,策略模式(Strategy Pattern)来定义不同的攻击策略,或者装饰器模式...

    剪刀石头布

    10. **设计模式**:虽然这是一个简单的游戏,但也可以用到设计模式,如命令模式(Command Pattern)来封装玩家的决策,或者策略模式(Strategy Pattern)来代表不同的游戏策略。 以上就是使用C#编写剪刀石头布游戏...

    DeckofCards:C#中的简单纸牌

    - 可能会应用到工厂模式(Factory Pattern)来创建牌对象,或者策略模式(Strategy Pattern)来处理不同的发牌策略。 10. **编码规范**: - 遵循C#的编码规范,如命名约定、注释清晰、代码结构合理等,以提高代码...

Global site tag (gtag.js) - Google Analytics