Added demo for when a concrete strategy is designed for repeated use, it
is generally implemented as a private static member class and exported
in a public static final field whose type is the strategy interface
instead of expose it to the public directly.