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();
            }

        }


  • 相关阅读:
    二维数组中的查找
    浅析Java的Object类
    Alan Turing的纪录片观后感
    近期学习docker遇到的一些问题
    eclipse(STS)安装jd-eclipse插件实现查看API源代码功能
    deepin配置Oracle JDK
    两个有序链表的合并
    Maven 项目中各包单独打成jar包
    一次性密码 && 身份认证三要素
    HTTPS工作流程
  • 原文地址:https://www.cnblogs.com/Jax/p/913954.html
Copyright © 2011-2022 走看看