• 我也设计模式——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();
            }

        }


  • 相关阅读:
    TCP校验和
    Python8 数据库基础
    Python7 TCPIP协议与抓包
    Python6 线程与进程、网络编程、生成器与迭代器、协程、异步IO
    python2 变量与数据类型
    Python10 前端基础与爬虫
    Python11 Scrapy框架基础
    python3 函数、运算符与数据类型的常用方法
    Python9 数据库进阶
    python1 简介
  • 原文地址:https://www.cnblogs.com/Jax/p/913954.html
Copyright © 2020-2023  润新知