This example still uses the Visitor pattern but in a slightly modified version. Order classes are aware that SpecialDiscountPolicy (the Visitor) has some meaning and calculates the discount. As mentioned previously, we want to be able to apply different discount rules based on the runtime type ...