static void Main(string[] args) { AbstractClass instance = new ConcreteClass(); instance.TemplateMethod(); Console.ReadLine(); }
static void Main(string[] args) { var abstractClass = new ConcreteClass(); abstractClass.TemplateMethod(); Concrete2Class concrete2Class = new Concrete2Class(); concrete2Class.TemplateMethod(); }
private void ExampleTemplateMethod() { NotUseTM.RookieTeacher poorTeacher = new NotUseTM.RookieTeacher(); poorTeacher.Teach(); UseTM.RookieTeacher smartTeacher = new UseTM.RookieTeacher(); smartTeacher.Teach(); TemplateMethod.ConcreteClass concreteClass = new TemplateMethod.ConcreteClass(); concreteClass.TemplateMethod(); }
/// <summary> /// 模板方法:把不变的行为放到模板抽象类中,去除子类中重复的代码 /// </summary> /// <param name="args"></param> static void Main(string[] args) { //利用多态性:声明的是父类,实例化子类。 AbstractClass cc1 = new ConcreteClass(); cc1.Template(); cc1 = new ConcreteClass2(); cc1.Template(); Console.ReadKey(); }
static void Main(string[] args) { ConcreteClass concreteClass = new ConcreteClass(); AnotherConcreteClass anotherConcreteClass = new AnotherConcreteClass(); ADiffrentConcreteClass aDiffrentConcreteClass = new ADiffrentConcreteClass(); concreteClass.TemplateMethod(); Console.WriteLine(); anotherConcreteClass.TemplateMethod(); Console.WriteLine(); aDiffrentConcreteClass.TemplateMethod(); Console.WriteLine(); }