• 设计模式2-模板方法模式


     1 namespace DesignModel.模板方法模式
     2 {
     3 
     4     abstract class Introduce
     5     {
     6         /// <summary>
     7         /// 模板方法,给出逻辑的骨架,是一些抽象行为组成,实现推迟到子类。
     8         /// </summary>
     9         public void SayHello()
    10         {
    11             Name();
    12             Department();
    13             Age();
    14         }
    15         /// <summary>
    16         /// 抽象行为1 放到子类去实现
    17         /// </summary>
    18         public abstract void Name();
    19         /// <summary>
    20         /// 抽象行为2
    21         /// </summary>
    22         public abstract void Department();
    23         /// <summary>
    24         /// 女员工可以选择隐藏自己的年龄,所以设定为虚方法吧
    25         /// </summary>
    26         internal protected virtual void Age()
    27         {
    28             Console.WriteLine("");
    29         }
    30     }
    31 
    32     /// <summary>
    33     /// 子类提供顶级逻辑的具体不同实现
    34     /// </summary>
    35     class XliuIntroduce : Introduce
    36     {
    37         public override void Department()
    38         {
    39             Console.WriteLine("挨踢部");
    40         }
    41 
    42         public override void Name()
    43         {
    44             Console.WriteLine("小牛");
    45         }
    46 
    47         internal protected override void Age()
    48         {
    49             Console.WriteLine("26");
    50         }
    51     }
    52     class RossIntroduce : Introduce
    53     {
    54         public override void Department()
    55         {
    56             Console.WriteLine("客户部");
    57         }
    58 
    59         public override void Name()
    60         {
    61             Console.WriteLine("Ross");
    62         }
    63     }
    64 }
    65 static void 模板方法模式()
    66         {
    67             Introduce introduce = new XliuIntroduce();
    68             introduce.SayHello();
    69             introduce = new RossIntroduce();
    70             introduce.SayHello();
    71         }
    View Code

    模板方法模式:抽象类定义顶级抽象逻辑,一个业务的“模板”,通过多态,子类去实现自己的业务算法。把不变行为搬移到超类,去除子类中的重复代码。当不变的和可变的行为在子类实现中出现就需要考虑使用该模式。

  • 相关阅读:
    select2 下拉搜索 可编辑可搜索 / 只可搜索
    获取服务器时间ajax
    table中td 内容超长 自动折行 (含字母数字文字)
    下拉菜单 ,三级联动 ,夹其它下拉菜单
    echarts 添加标线,设置颜色
    table 中的tr 行点击 变换颜色背景
    checkebox 全选 ,子复选框单个全部选择后,全选框也会被选择
    replace替换,全局和局部替换
    字断行
    ydoc 参考系列
  • 原文地址:https://www.cnblogs.com/liurui/p/5501986.html
Copyright © 2020-2023  润新知