• 我也设计模式——24.Template Method


    模板方法很简单,只要有抽象类的地方,都可以看到这个模式:就是在父类中的非抽象方法中调用抽象方法。


    基于委托的模板方法:从而具体实现方法可以不依赖于抽象类,达到解耦的目的

    几点注意:
        1.delegate声明在模板类中
        2.在类DoCompA和DoCompB中定义与委托相同的方法
        3.在Main()中组装委托链,调用tm.DoComp()意味着这是一个模板方法(非抽象中方法调用抽象方法)
        public class TemplateMethod
        
    {
            
    public delegate void Do();

            
    public Do myDo;

            
    public void DoComp()
            
    {
                myDo();
            }

        }


        
    public class DoCompA
        
    {
            
    public void c1()
            
    {
                
    //Do something 
            }


            
    public void c2()
            
    {
                
    //Do something 
            }

        }


        
    public static class DoCompB
        
    {
            
    public static void c3()
            
    {
                
    //Do something 
            }

        }


        
    public class MainClass
        
    {
            
    static void Main()
            
    {
                DoCompA a 
    = new DoCompA();

                TemplateMethod tm 
    = new TemplateMethod();

                tm.myDo 
    += new TemplateMethod.Do(a.c1);
                tm.myDo 
    += new TemplateMethod.Do(a.c2);
                tm.myDo 
    += new TemplateMethod.Do(DoCompB.c3);

                tm.DoComp();
            }

        }


  • 相关阅读:
    用Visual C#实现文件下载
    解读C#中的规则表达式
    NET(C#)连接各类数据库集锦
    C#中编写多线程(1)——起步
    C#中的常用加密算法与其它语言的兼容性
    C#的事件处理机制应用
    TCP IP协议之通信详解
    手把手教你AspNetCore WebApi:认证与授权
    TCP IP协议之初识
    mysql中exit和in的区别
  • 原文地址:https://www.cnblogs.com/Jax/p/913954.html
Copyright © 2020-2023  润新知