static void Main(string[] args) { AbstractClass abstractClass = new ConcreteClass1(); abstractClass.TemplateMethod(); abstractClass = new ConcreteClass2(); abstractClass.TemplateMethod(); }
static void Main(string[] args) { AbstractClass abstractClass1 = new ConcreteClass1(); AbstractClass abstractClass2 = new ConcreteClass2(); abstractClass1.Operate(); Console.WriteLine(); abstractClass2.Operate(); }
static void Main(string[] args) { AbstractClass class1 = new ConcreteClass1(); AbstractClass class2 = new ConcreteClass2(); //调用模版方法 class1.templateMethod(); class2.templateMethod(); Console.ReadLine(); }
static void Main(string[] args) { AbstractClass concreteclass1 = new ConcreteClass1(); concreteclass1.TemplateMethod(); AbstractClass concreteclass2 = new ConcreteClass2(); concreteclass2.TemplateMethod(); }
static void Main(string[] args) { // use ConcreteClass1 operation to do TemplateMethod var concrete1 = new ConcreteClass1(); concrete1.TemplateMethod(); // use ConcreteClass2 operation to do TemplateMethod var concrete2 = new ConcreteClass2(); concrete2.TemplateMethod(); }