public void UsageMethod()
 {
     IAbstractClass aA = new ConcreteClassA();
     aA.TemplateMethod();
     IAbstractClass aB = new ConcreteClassB();
     aB.TemplateMethod();
 }
        internal static void UsageMethod()
        {
            IAbstractClass aA = new ConcreteClassA();

            aA.TemplateMethod();
            IAbstractClass aB = new ConcreteClassB();

            aB.TemplateMethod();
        }