zoukankan      html  css  js  c++  java
  • 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();
            }
  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/kavilee/p/2361799.html
Copyright © 2011-2022 走看看