package design.model.holeplay; import design.model.Club; public interface HoleState { void enter(HolePlayContext ctx); void handleStart(HolePlayContext ctx); void handleShot(HolePlayContext ctx, Club club, Integer distanceYds); // distance may be null void handleHoleOut(HolePlayContext ctx); String name(); }