C# 模板方法(TempleteMethod)

理解:当父类中有一个复杂主方法,主方法中大部分不变,只有小部分随子类变化时,把变化点提取出来成新的抽象子方法,让不同的子类去实现不同的子方法。这样主方法不变的部分就可以达到代码复用功能。

代码:

using System.Windows.Forms;

namespace DesignMode.TempleteMethod
{
    //抽象父类
    public abstract class FatherClass
    {
        //人生计划
        public void LifePlan()
        {
            MessageBox.Show("上中兴小学");
            MessageBox.Show("上中兴中学");
            University();
            MessageBox.Show("继承家业");
        }

        //让儿子去决定大学
        public abstract void University();

    }

    //子类一
    public class OneSon : FatherClass
    {
        public override void University()
        {
            MessageBox.Show("上北京大学");
        }
    }

    //子类二
    public class TwoSon : FatherClass
    {
        public override void University()
        {
            MessageBox.Show("上清华大学");
        }
    }

    //子类三
    public class ThreeSon : FatherClass
    {
        public override void University()
        {
            MessageBox.Show("国外留学");
        }
    }
}

客户端代码:

        private void btn_TempleteMethod_Click(object sender, EventArgs e)
        {
            FatherClass oneSon = new OneSon();
            oneSon.LifePlan();

            FatherClass twoSon = new TwoSon();
            twoSon.LifePlan();

            FatherClass threeSon = new ThreeSon();
            threeSon.LifePlan();
        }
原文地址:https://www.cnblogs.com/kavilee/p/2361799.html