1 abstract class AbstractClass 2 { 3 public abstract void PrimitiveOperation1(); 4 5 public abstract void PrimitiveOperation2(); 6 7 public void TemplateMethod() 8 { 9 PrimitiveOperation1(); 10 PrimitiveOperation2(); 11 Console.WriteLine(""); 12 } 13 }
1 class ConcreteClassA : AbstractClass 2 { 3 public override void PrimitiveOperation1() 4 { 5 Console.WriteLine("具体类A方法1实现"); 6 } 7 8 public override void PrimitiveOperation2() 9 { 10 Console.WriteLine("具体类A方法2实现"); 11 } 12 }
1 class ConcreteClassB : AbstractClass 2 { 3 public override void PrimitiveOperation1() 4 { 5 Console.WriteLine("具体类B方法1实现"); 6 } 7 8 public override void PrimitiveOperation2() 9 { 10 Console.WriteLine("具体类B方法2实现"); 11 } 12 }