enum PayrollDay { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY(PayType.WEEKEND), SUNDAY(PayType.WEEKEND);
Seems like would’ve been more instructive example not to provide a default constructor and force Strategy selection as indicated in the text.
But this is clever and readable and I like it.

· Flag
Robert