zoukankan      html  css  js  c++  java
  • 我也设计模式——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();
            }

        }


  • 相关阅读:
    DbgPrint格式 输出
    string 类常用函数[转]
    pragma warning[转]
    连接符
    ubuntu ftp server
    关于dex

    Topology中各函数调用顺序
    C# 错误捕捉
    操作word,Excel,PPT
  • 原文地址:https://www.cnblogs.com/Jax/p/913954.html
Copyright © 2011-2022 走看看