C#設計モードのテンプレート方法


公共の部分を公共のクラスに抽出して、やっと法を提供して、一致しない地方は子のクラスから完成します
 
public abstract class BaseHandler
    {
        public virtual void Handle()
        {
            this.OperationA();
            Console.WriteLine("common part");
            this.OperationB();
        }
        protected virtual void OperationA()
        {
            Console.WriteLine("operationA in base handler");
        }
        protected virtual void OperationB()
        {
            Console.WriteLine("operationB in base handler");
        }
    }
    public class SubClass : BaseHandler
    {
        public override void Handle()
        {
            base.Handle();
        }
        protected override void OperationA()
        {
            Console.WriteLine("implementation operationA in sub class");
        }


        protected override void OperationB()
        {
            Console.WriteLine("implementation operationB in sub class");
        }
    }

 BaseHandler bh = new SubClass();
            bh.Handle();