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 }